- ベストアンサー
エクセルの関数を使った検索について
エクセルで、例えばA,Bの2列を検索して、 A列、B列共に、指定した検索値(例:A=海外旅行、 B=ベトナム)に合致している行のC列の値(例:\50,000)を取り出したいのです。 自分で数日間、考えてみたのですが、 どうしてもわかりませんでしたので、 どなたか詳しい方にお頼りさせて頂きたく思います。 もし、おわかりの方、いらっしゃいました、 どうか御教え下さい。 何卒宜しく御願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一番簡単なのは、非表示な列CにA列とB列を連結した文字列を格納し ておいて、価格をD列に移動することですね。そうすれば検索文字列 を「Aの検索値&Bの検索値」として普通にvlookup関数が使えます。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
#1のご回答の方式を使った説明になりますが (データ)A1:C6に a x 1 b y 2 c z 3 d u 4 e s 5 c z 6 (関数式) D1に=IF(AND(A1="c",B1="z"),A1,"") E1に=IF(AND(A1="c",B1="z"),B1,"") F1に=IF(AND(A1="c",B1="z"),C1,"") といれ、D2からD6、E2からE6、F2からF6へ複写します。 (D2:f2) c z 3 (D6:F6)c z 6 となります。 (D1に=IF(AND($A1="c",$B1="z"),A1,"")と入れて横次ぎに縦に複写すると幾らか早いです) ここまでは「なーんだ」ですが、 問題は第1行から詰めて、セットできていないことです。これがVBAなら出来て関数では難しい点です。やれなくも 無いようですが、今までの回答には無かったと思います。 あとは一発では出来ないと妥協をして、D1:F6を自己の範囲に値のみ複写して、(すると式は消えます)そこでソートする手があります。 その際昇順降順の問題があり、空白が上に行ったり、下に 集まったり、上の空白部を削除する必要もあります。連番を付け加えソートすると元の表での上下順序を保存できます。
お礼
御礼が遅れまして、本当にすみません。 詳しい説明を頂いて、本当にありがとう ございました。 良く読み込んで、実践してみますね! お忙しいところ時間をとって すみませんでした。
- ka3
- ベストアンサー率18% (36/194)
次の様な式では如何でしょうか ? [ =IF(AND(An="海外旅行",Bn="ベトナム"),Cn) ] なお、合致しない場合の表示を指定頂く必要があります。
お礼
御礼が遅くなりすみません。 関数は定型を覚えるだけではやっぱりだめですね! 実際の運用力が必要なのだとわかりました。 教えていただいた式を眺めながら、そうか、 こんな簡易な式でできるのねと 感心しました。 お忙しいところありがとうございました
お礼
御礼が遅くなりました。 連結文字列と聞いたとき、目からうろこでした! スゴイ裏ワザですよね! 発送がすばらしいと感心しました。 vlookupでは無理だと諦めてましたが、 発送を変えれば、できるんですねぇ 参考にさせて頂きますね。 本当にありがとうございました