• 締切済み

excel関数について。

以下のURLで、なぜ、CHOOSEの部分を、IF({TRUE,FALSE},C3:C8,A2:A7)に変えても同じ結果なのでしょうか?この関数(IF({TRUE,FALSE},C3:C8,A2:A7)の事)はどういう意味があるのでしょうか?ご教授いただけないでしょうか?すみません。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12241336457

みんなの回答

  • SI299792
  • ベストアンサー率47% (774/1618)
回答No.2

Excel で{}は繰り返しを表します。 CHOOSE({1,2},C3:C8,A2:A7) 1回目:CHOOSE(1,C3:C8,A2:A7) →C3:C8 2回目:CHOOSE(2,C3:C8,A2:A7) →A2:A7 これで、C3:C8とA2:A7が繋がります。 IF({TRUE,FALSE},C3:C8,A2:A7) 1回目:IF(TRUE,C3:C8,A2:A7) →C3:C8 2回目:IF(FALSE,C3:C8,A2:A7) →A2:A7 これで、C3:C8とA2:A7が繋がります。 あちらの式は、検索範囲が昇順に並んでいる前提です。 画像の様に、検索範囲が昇順に並んでいない場合、 =VLOOKUP(E3,CHOOSE({1,2},C3:C8,A2:A7),2,0) =VLOOKUP(E3,IF({TRUE,FALSE},C3:C8,A2:A7),2,0) =INDEX(A2:A7,MATCH(E3,C3:C8,0)) のどれかにする必要があります。

zasx1098
質問者

お礼

以下のURLの、No.2で、Falseが先で、 Trueが後から来るというのはどういう事でしょうか? https://oshiete.goo.ne.jp/qa/12302300.html

zasx1098
質問者

補足

あちらの式とは、どの式の事でしょうか?ご教授いただけないでしょうか?すみません。

回答No.1

CHOOSE関数は、第1引数が1なら第2引数を、第1引数が2なら第3引数を返す、というのが基本です(3なら、4なら、と続ける事も出来ますが) ですが、第1引数が「1、2」という配列だったら、第2引数以降に与えられた物を配列として返します。 なので、第1引数が「{1,2}」のような配列だったら、第2引数と第3引数を合体して配列にして返します。 つまり、C3~C8が1列目、A2~A7が2列目の、2次元配列が返ってきます。 一方、IF関数は、第1引数がTRUEなら第2引数を、第1引数がFALSEなら第3引数を返す、というのが基本です。 IF関数の「第1引数がTRUEなら第2引数を、第1引数がFALSEなら第3引数を返す」というのと、CHOOSE関数の「第1引数が1なら第2引数を、第1引数が2なら第3引数を返す」と言うのは、ソックリだと思いませんか? 「TRUEだったら」が「1だったら」になってる、「FALSEだったら」が「2だったら」に変わってるだけです。 それだけの違いって事は「CHOOSE関数を、IF関数に置き換え可能」って事です。 つまり、第1引数の「{1,2}」を「{TRUE,FALSE}」に書き換えて、CHOOSEをIFに書き換えれば、まったく同じ動作をする筈です。 事実、IF関数の、 第1引数がTRUEだったら第2引数を、 第1引数がFALSEだったら第3引数を返す という仕様を拡張したのが、CHOOSE関数の、 第1引数が1だったら第2引数を、 第1引数が2だったら第3引数を、 第1引数が3だったら第4引数を、 第1引数が4だったら第5引数を返す という仕様です。 ですので、CHOOSE関数の、 第1引数が1だったら第2引数を、 第1引数が2だったら第3引数を返す という部分だけを使うなら、IF関数に置き換えて、 第1引数がTRUEだったら第2引数を、 第1引数がFALSEだったら第3引数を返す という書き方も可能な訳です。 なので、CHOOSE関数に引数を3つ指定する場合は、IF関数で同様の動作をするように置き換えが可能なのです(第1引数の値を都合よく変える必要はありますが)

zasx1098
質問者

補足

CHOOSE関数に引数を3つ指定する場合は、IF関数で同様の動作をするように置き換えが可能なのです(第1引数の値を都合よく変える必要はありますが)というのは、どういう事でしょうか?ご教授いただけないでしょうか?すみません。

関連するQ&A