• ベストアンサー

関数について。

以下のURLで、 https://detail.chiebukuro.yahoo.co.jp/qa/questio … の、VLOOKUP関数で表しているのですが以下のこの数式の意味について、ご教授いただけないでしょうか?これです。 F3セルの関数は、VLOOKUP関数でも可能です =VLOOKUP(E3,CHOOSE({1,2},C3:C8,A2:A7),2,1) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>=VOOKUP("R05",CHOOSE({1,2},C2:C5,A2,A5),2,TRUE)で、なぜ、TRUE(近似一致)にしたのでしょうか?ご教授いただけないでしょうか? この例ではFALSEが適切でした。今回のご質問では「近似か完全一致かは問題ではない」ので「TRUEでもFALSEでも構わない」と考え、適当にTRUEにしました。

zasx1098
質問者

補足

で、もう一つ間違いに気づいたのですが、=VOOKUP("R05",CHOOSE({1,2},C2:C5,A2,A5),2,TRUE)は、 本当は、=VOOKUP("R05",CHOOSE({1,2},C2:C5,A2:A5),2,TRUE)ですよね?すみません。揚げ足を取ってしまって、大変恐縮です。ご教授いただけないでしょうか?

その他の回答 (2)

回答No.2

VLOOKUPは、指定された範囲の1列目から値を探して、3つ目の引数の列番号の値を返します。 従って、検索される値の並びは「範囲の一番左の列」じゃないと、上手く行きません。 結果として返したい値がA列にあって、検索される値の並びがC列にある場合、どうすれば良いでしょうか? 例えば A列   B列 C列 商品名 単価 商品コード りんご 50  R01 みかん 45  R02 バナナ 30  R05 梨   60  R08 と言う表があり、商品コードを元に、商品名を探したいとします。 =VOOKUP("R05",A2:C5,???,TRUE) では上手く行きません。検索対象が表の1列目に無いからです。 そこで、商品コードが1列目になるよう、仮想の表をでっち上げます。 その方法はCHOOSE関数を使う、という方法です。 CHOOSE({1,2},C2:C5,A2,A5) と書くと、1列目がC2~C5、2列目がA2~A5になった「仮想の表」が返されます。 それをVLOOKUPに指定します。 =VOOKUP("R05",CHOOSE({1,2},C2:C5,A2,A5),2,TRUE) とする事で、C2~C5の中から「R05」を探して、仮想表の2列目のA2~A5の商品名の中から「バナナ」を探せます。 同様にして =VLOOKUP(E3,CHOOSE({1,2},C3:C8,A2:A7),2,1) は、C3~C8の中からE3の値を探して、対応する値をA2~A7の中から返します(列番号は仮想表の列番号なので「2」を指定します) つまり E3とC3が一致したらA2を、 E3とC4が一致したらA3を、 E3とC5が一致したらA4を、 E3とC6が一致したらA5を、 E3とC7が一致したらA6を、 E3とC8が一致したらA7を 返します。 面白いのは、行数が一致していれば行がズレていても構わない、という事です。

zasx1098
質問者

補足

=VOOKUP("R05",CHOOSE({1,2},C2:C5,A2,A5),2,TRUE)で、なぜ、TRUE(近似一致)にしたのでしょうか?ご教授いただけないでしょうか?すみません。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問に載せているサイトは、そのままでは出ないようだ。 ーー 質問文から察して、下記説明をやってみる。 (まずCHOOSE関数の理解) 関数の組み合わせの式の分解しての理解は、カッコの中側から、まず理解を始める。 Choose関数は、第1引数の正整数で、第2引数以下の該当を持ってくる。 =CHOOSE(2,A,B,C)ならBを採ってくる。0は不可。 ーー (VLOOKUP関数との関連。) VLOOKUP関数の第2引数は、表を引く(参照する)セル範囲を示す箇所です。 普通は、決まった1つの範囲を、$で固定して、指定する。 この部分を、何か他の条件で、シートの、別の適当なところを参照して表を引いてほしい場合がある。 (以下は例で説明) 東京の場合は、こちら、神奈川の場合はあちらのセル範囲に対応表があるから、そちらを 見てほしい、などという場合(ニーズ)がある。 例データ  F3:G8に、参照する表データを用意 千代田区 1 豊島区 2 新宿区 3 調布市 4 武蔵野市 5 三鷹市 6 上記とは、飛び離れた範囲に 今回は、I9:J12に 横浜市 10 川崎市 11 厚木市 12 川崎市 13 の神奈川県のデータを用意。 ーーー テストデータで A2:B9に 千代田区 1 新宿区   1 武蔵野市 1 調布市  1 三鷹市   1 厚木市  2 横浜市  2 川崎市   2 を説明のテストのため作る。 B列の1、2は東京か神奈川の区別のコードです。 C列に =VLOOKUP(A2,CHOOSE(B2,$F$3:$G$8,$I$9:$J$12),2,FALSE) を入れて、下方向に式を複写。 結果は 千代田区 1 1 新宿区  1 3 武蔵野市 1 5 調布市  1 4 三鷹市  1 6 厚木市  2 12 横浜市  2 10 川崎市  2 11 C列に注目して、思い通りか? OK。 ーー 上記例では、B列の1,2は、目視で、常識で入れているが、どこかの列に、県名がある場合であれば、その県名文字で、1,2を割り出すのはたやすい。VLOOKUPを使ってもできる。 ==== こういう県などグループごとに、表を作ってあって、各グループに応じて、見る表を変えるのは 関数を使う場合でも、普通は他のパターンの回答が出ると思うが、ここでは略。 本件のような,CHOOSE利用法パターンは主流ではないようだが。

関連するQ&A