- ベストアンサー
VLOOKUP関数の列選択
VLOOKUP関数で次のようなことは出来ますか? VLOOKUP(検索値、検索範囲、列番号、検索型)の、列番号の部分に別の関数を組み込むことは可能でしょうか? 状況に応じて検索列を変化させたいので、出来ればVLOOKUPを組み込みたいのですが・・・ 宜しくお願いします。 また、難しいようならそれに近い方法や、別の関数があればご教授ください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
私が一番多く利用するのが、COLUMN(列番号を返す)ですね。 例えばある検索用の表があり、 A B C D 1 名前 住所 年齢 性別 とあるとします。 検査値は名前で拾うわけですが、同じ配置で要素をすべて拾おうとした 場合は列番号を要素にあわせて変える必要が発生します。 この時、列番号にCOLUMNを取り入れ =VLOOKUP(検査値、絶対参照で範囲指定、COLUMN(B1)、0)とします。 この事で列番号は右にフィルコピーすれば、COLUMN(C1)・COLUMN(D1) と変化し列番号でいえば、2が3・4・・・と変化します。 これで右方向にフィルコピーだけで、元表と同じ表構成で値が 拾えますね。
その他の回答 (3)
> 別の関数を組み込むことは可能でしょうか? 関数を置くということは、その関数返す数値等を使うわけですから、 手入力する数値等と全く同じに使えると言うことです。 関数をネストして使うのは、ごく普通のことですから、Vlookupに限らず 他の関数でも同じ事です。また、ネストして使うのは関数を使う上での醍醐味とも言えます。
- redowl
- ベストアンサー率43% (2140/4926)
「検索範囲」のエリアを広げて、 「検索値」に応じて「列番号」が変わるようにすれば、可能。 (IF関数とか、CHOOSE関数とか、 これ以外の関数などを使用) 検索値によって、どの列を選択させるかは、具体例が出てこないと・・・・ サンプルが有った方が、いいです。
- adam9021
- ベストアンサー率50% (4/8)
結論から言いますと可能です。 例えば、 =VLOOKUP(D1,A1:C4,IF(E1="",2,3),FALSE) と列番号のところにIF関数をネストしますと、 意味としては、もしもE1が空白ならば列2から、空白でなければ列3から抽出という意味になります。