- ベストアンサー
エクセルで複数条件を満たすデータを返す関数
- エクセルで複数条件を満たした時にデータを返す関数をご教示ください。
- 具体的な例として、A列に県名、B列に都市名、C列にアルファベットが入っている表があるとします。
- この表において、指定した条件に一致するアルファベットを返す関数が必要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
回答No1です。 お示しのようなケースでは神奈川県横須賀市でも多くのC列での該当するデータ有る場合には回答1では最初に該当するデータが表示されますね。実際に一つしかC列のデータが無い場合にはそれでよいのですが多く存在する場合にはそれらの該当するでC列のデータを並べて表示させることが必要かもしれませんね。 例えば100行までの表が有るとして、101行目のA101セルに神奈川県、B101セルに横須賀市と入力して、それに該当するC列のデータをD101セルから横の列に表示させるとしたら、そしてその中の一つのデータをご自分で選択してC101セルに直接入力することにしたら、次のように作業列を作って対応します。 お示しのデータは2行目から下方にあるとしてD2セルには次の式を入力してD100セルまで下方にドラッグコピーします。 =IF(COUNTA(A2:B2)<>2,"",A2&B2&COUNTIF(D$1:D1,"*"&A2&B2&"*")+1) D101セルには次の式を入力して右横方向にドラッグコピーします。 =IF(OR(COUNTA($A101:$B101)<>2,COLUMN(A1)>COUNTIF($D$1:$D$100,"*"&$A101&$B101&"*")),"",INDEX($C$1:$C$100,MATCH($A101&$B101&COLUMN(A1),$D$1:$D$100,0)))
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 質問通りの配置として・・・ C5セルに =INDEX(C1:C3,SUMPRODUCT((A1:A3=A5)*(B1:B3=B5)*ROW(A1:A3))) (エラー処理はしていません) という数式を入れてみてください。 ※ 条件が一致する行は1行のみとします。 仮に複数の行が一致する場合はとんでもない表示になります。m(_ _)m
お礼
SUMPRODUCTとROWの組み合わせは知りませんでした。 勉強になります。 ありがとうございます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
C5セルには次の式を入力すればよいでしょう。 =IF(COUNTA(A5:B5)<>2,"",INDEX(C$1:C$4,SUMPRODUCT((A$1:A$4=A5)*(B$1:B$4=B5)*ROW(A$1:A$4))))
お礼
結局今回は別の列にA列とB列の文字列を“&”で結合した文字列を作り、その結合した文字列でvlookupを使うこととしました。 数式の回答ありがとうございます。 私の見慣れないがいくつかあるので、勉強してみます。