人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのVLOOKUP関数(を使うのだと思います)の、条件式を増やす方法について質問です。


次の検索対象範囲があったとします。

1234 adbd 07
1234 abcd 43
1232 aerd 08
1234 erer 08



この中から、次の条件で探すとします。

「1列目が1234」かつ 「3列目が08」


通常ならば「1列目が1234」という行を探すのがVLOOKUP関数ですが、「さらにもし3列目が一致すれば」その行の任意の列を書き出すという条件を追加するプログラムはできないでしょうか?



例えば、VLOOKUPで2列目を書き出すプログラムを実行した場合、検索範囲のうち

1234 erer 08

が検索結果に一致しますから、ererがそのセルに書き出されます。

よろしくお願いします。

●質問者: ReoReo7
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:エクセル セル プログラム 検索 関数
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● tokuya_n
●40ポイント ベストアンサー

DGET関数を使ったほうがいいと思います。

さはら組で(かつ)算数の90点以上は誰?

http://blog.livedoor.jp/excellover/archives/15072702.html

今回のケースならこんな感じかと


abc

12347

abc

1234adbd7

1234abcd43

1232aerd8

1234erer8

=DGET(A4:C8, "b", A1:C2)

◎質問者からの返答

なるほどこれは役にたちそうですね。


2 ● osamu666
●20ポイント

一番簡単なのはもう一つ列AとCをくっつけたデータの列を現在のA列の前に挿入してそれをキーにしてvloolupすることです。この場合ある条件に対して複数の該当データがある場合一番最初のものが表示されます。

Dget関数を使用すると複数の条件での抽出ができますが、この場合は複数の該当データがある場合はエラーとなります。

http://www.geocities.jp/chiquilin_site/data/050715_database_func...

◎質問者からの返答

そうなんですか。ありがとうございます。


3 ● kaiton
●20ポイント

2案ほど回答します。

この表が、A1から始まっているとします。


作業列をつかって簡単なほう)

=B1&"_"&D1は、A列の桁数がそろっているなら、単純に =B1&D1でも良いです。その時はVLOOKUPの式も変えてください。


この表をそのまま使う)

=INDEX(B1:B4,SUM(((A1:A4=1234)*(C1:C4="08"))*ROW(A1:A4))) この式をCtrlとShiftを押しながらEnter

式の前後に{}がつけばOKです。

A1:A4=1234の部分は、A1:A4="1234"でないとだめかもしれません。A列が数字か文字かによってどちらかにしてください。

なお、配列数式を使っているので、表が大きいと遅いです。

◎質問者からの返答

簡単なほうがよさそうですね。表をそのまま使うのも魅力ですが。


4 ● ardarim
●20ポイント

もう1つ参照用のテーブルを作って対応するのが簡単かと思います。


「1列目が1234」かつ 「3列目が08」という条件を1つにまとめるために、1列目と3列目を1つのセルにまとめてしまい、それをVLOOKUPの条件にすれば、結果的に2つの条件で検索ができます。


以下に例を示します。

D1に数式「=A1&":"&C1」を、E1に「=B1」を入れ、D列、E列にそれぞれコピーします。


A B C D E
1 1234 adbd 07 1234:07 abdb
2 1234 abcd 43 1234:43 abcd
3 1232 aerd 08 1232:08 aerd
4 1234 erer 08 1234:08 erer

D列、E列が参照用のテーブルになります。

「1列目が1234」かつ 「3列目が08」という条件の場合は、VLOOKUPの検索条件に "1234:08" を入れます。

=VLOOKUP("1234:08",D1:E4,2,FALSE)
◎質問者からの返答

なるほど。そういう風にやるんですね。


5 ● yotinakk
●20ポイント

数字の列の左側の列に

=4桁数字の列&"_"&"2桁数字の列(?)

を埋め込んでおき、この列をキーに

"1234"&"_"&"08"

を検索する。?の列が邪魔なら非表示にすればよいと思います。

◎質問者からの返答

早速試してみたいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ