- 締切済み
vlookup関数で、任意の列ではなく、行、列
タイトルの件、質問いたします。 =VLOOKUP(G2,A1:C3,2,FALSE) の関数があります。 これは、G2,A1の範囲の2列目の数字を返すものです。 これを、2列目ではなく、2列目の2行目の数字を返すものに出来ないでしょうか? 教えて下さい。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
>2列目ではなく、2列目の2行目の数字を返す =INDEX(B1:B3,MATCH(G2,A1:A3,0)+1)
- kmetu
- ベストアンサー率41% (562/1346)
列ではなく行のデータを検索範囲にしたいという事でしょうか HLOOKUP関数
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
VLOOKUP 関数は「2 行以上を含む範囲」の中から指定の値を検索する関数であるはずなのに、1 行に限定したいとはどういう状況なのかが分からなくて、回答者の皆さんは困惑しているかと思います。また、G2 セルなどにどんなデータが存在しているのかが不明でヒントもないので、無数の答えがあるナゾナゾのような質問です。 皆さんとはまた別の解釈で、「『 B 列の各行のうち G2 セルと行番号が同じである行』の値を拾いたい」という意味に捉える場合は、次式です。 任意の空白セル =b2 ※数式を記入するセルは 2 行目でもそれ以外でも可 上式を記入したセルをコピーして「同じ列の次の行」に貼り付けると、その数式は自動的に「=B3」に書き換わります(相対参照)。「右隣の列の次の行」に貼り付けるならば、「=C3」となります。
- eden3616
- ベストアンサー率65% (267/405)
>これは、G2,A1の範囲の2列目の数字を返すものです A1:C3の範囲でA列よりG2を検索して見つかった行のA列を含み2列右側の値を返すものです >これを、2列目ではなく、2列目の2行目の数字を返すものに出来ないでしょうか? ■「2行2列」とわかっているのであれば以下でできます =INDEX(セル範囲,行数,列数) → セル範囲の左上のセルを含み、行方向に行数、列方向に列数移動したセルを参照します → =INDEX(A1:C3,2,2) → B2のセルを参照 =OFFSET(基準セル,行数,列数) → 基準セルを含まず、行方向に行数、列方向に列数移動したセルを参照します → 基準セルを含んでいないのでA1を指定した場合、行列数から-1する必要があります → =OFFSET(A1,2-1,2-1) → B2のセルを参照 ■G2のセルで検索して位置を取得する =MATCH(検索値,セル範囲,0) → セル範囲の中から検索値と完全一致する一つ目のセルの相対位置を返します → =MATCH(G2,A1:A3,0) → 2 以上のMATCHとINDEXまたはOFFSETを組み合わせますとご質問者様の要件を満たすと思います ◇INDEXの場合 =INDEX(A1:C3,MATCH(G2,A1:A3,0),2) ◇OFFSETの場合 =OFFSET(A1,MATCH(G2,A1:A3,0)-1,2-1)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! >これは、G2,A1の範囲の2列目の数字を返すものです ではなく、 A1:C3の範囲でG2セルに入っているデータとA列が完全一致する行の2列目データを返す! という意味になりますので、 素直に解釈するとA1:C3セル範囲内でG2セルの数値 仮に「2」が入っているとすると 2列目・2行目 「3」が入っていると 3列目・3行目のデータを返したい!という解釈で =INDEX(A1:C3,G2,G2) とか =OFFSET(A1,G2-1,G2-1) としてみてはどうでしょうか? ※ 解釈が違っていたらごめんなさいね。m(_ _)m