- 締切済み
エクセルで複数の条件に合致したセルを検索する方法
いつもお世話になります。 以下のようなセルがあり、 1列目と2列目の値が合致した時の3列目のセル(例えば1列目が「a」で2列目が「2」の行の3列目の値「hh」)を別のシートに表示したいです。 VLOOKUPで検索すると、1列目の値のみが検索対象となってしまいますので、 そのやり方だと「gg」が表示されてしまいます。 関数の組み合わせでうまく値を検索・表示する方法はありますでしょうか a 1 gg a 2 hh a 3 ii a 4 jj a 5 kk a 6 ll a 7 mm b 1 oo b 2 pp b 3 pp b 4 rr b 5 ss b 6 tt b 7 uu よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- inakanoit
- ベストアンサー率0% (0/6)
アドインを使えるなら、簡単にできます。
- bunjii
- ベストアンサー率43% (3589/8249)
>関数の組み合わせでうまく値を検索・表示する方法はありますでしょうか あります。 INDEX関数とSUMPRODUCT関数の組み合わせが良いでしょう。 =INDEX(C$1:C$1000,SUMPRODUCT((A$1:A$1000="a")*(B$1:B$1000=2)*ROW(C$1:C$1000)),1) この式の中でROW関数の引数(C$1:C$1000)の列記号は何でも問題ありませんが列記号を省くと計算範囲が広がり動作が鈍くなるかも知れません。
- keithin
- ベストアンサー率66% (5278/7941)
簡単な方法(推奨): C列に空列を一列挿入、gg以下をD列に移動 C1: =A1&"_"&B1 以下コピー E1: a F1: 2 G1: =VLOOKUP(E1&"_"&F1,C:D,2,FALSE) #ご質問の直接の回答 ご利用のエクセルのバージョンが不明のご相談ですが、エクセル2007以降を使って: =IF(COUNTIFS(A:A,"a",B:B,2)=1,INDEX(C:C,(A1:A20="a")*(B1:B20=2)*ROW(A1:A20)),"") 2003以前: =IF(SUMPRODUCT((A1:A20="a")*(B1:B20=2))=1,INDEX(C:C,(A1:A20="a")*(B1:B20=2)*ROW(A1:A20)),"")
- NukoTarou
- ベストアンサー率29% (5/17)
一番左端に列をひとつ追加して、 追加した列の一行目のセル(A1)に、数式[=B1 & C1]を入力し、 その数式をしたにドラッグしてコピー。 これにvlookup関数を使う、というのではダメでしょうか。