- ベストアンサー
エクセルの関数で複数条件一致時にデータを出力する方法
- エクセルの関数を使用して、複数の条件が一致した時に特定の列のデータを出力する方法について質問があります。
- 具体的な例を挙げて説明します。2つのシートがあり、それぞれA~Dの列と1~3の行で構成されています。シート1とシート2の特定の列で複数の条件が一致した場合、シート2の別の列のデータをシート1の特定の列に表示したいです。
- データが量が多いため、オートフィルを使用して同じ数式をシート1のC列に適用する方法も知りたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
A列とB列を連結した文字で判定してよいなら(A列が1でB列が21とA列が12でB列が1のデータが存在しない条件なら)Sheet2のC1セルに以下の式を入力して下方向にオートフィルすればご希望のデータを表示することができます。 =IFERROR(INDEX(Sheet2!C:C,MATCH(A1&B1,INDEX(Sheet2!$A$1:$A$1000&Sheet2!$B$1:$B$1000,),0),),"")&"" #上記の数式はSheet2のC列のデータが文字列の場合ですので、日付や数値の場合は以下のような数式にする必要があります。 =IF(A1="","",IFERROR(INDEX(Sheet2!C:C,MATCH(A1&B1,INDEX(Sheet2!$A$1:$A$1000&Sheet2!$B$1:$B$1000,),0),),""))
その他の回答 (4)
- keithin
- ベストアンサー率66% (5278/7941)
C1に =IFERROR(INDEX(Sheet2!C:C,TEXT(MAX(INDEX((Sheet2!A$1:A$300=A1)*(Sheet2!B$1:B$300=B1)*ROW(Sheet2!C$1:C$300),)),"#")),"") と記入、以下コピーします 既出回答の一つと非常によく似た数式ですが、既出回答は間違っています。 #参考 >理解しづらいところ 理解は簡単ですが、説明がヌケてる点が多数あります ●ご利用のエクセルのバージョンが不明。場合によって回答の数式は使用できません ●「多数」とは具体的に最大何行か不明。数千件を超えてデータがある場合は、これらの方式では無く全く違う方法を使います ●「☆」とかは具体的に「文字」なのか「数値」なのか不明。数値の場合は、ご利用のエクセルのバージョンによっては、もっと遥かに簡単な数式で計算できます これらの事に配慮しながら、ご相談では情報提供してみて下さい。今回はいいので次回以降のご参考に。
お礼
ご指摘有難うございます!! 今後気を付けます!
- mshr1962
- ベストアンサー率39% (7417/18945)
一例ですが。。。 Sheet1!C1=IFERROR(INDEX(Sheet2!$C$1:$C$3,SUMPRODUCT(MAX((Sheet2!$A$1:$A$3=A1)*(Sheet2!$B$1:$B$3=B1)*ROW(Sheet2!$A$1:$A$3)))),"")
お礼
有難うございます!! 参考にさせて頂きました!
- tom04
- ベストアンサー率49% (2537/5117)
- kkkkkm
- ベストアンサー率66% (1719/2589)
シート1のC1に =IF(A1&B1=Sheet2!A1&Sheet2!B1,Sheet2!C1,"") で下にフィルする でいいのでしょうか。
お礼
有難うございます!!
お礼
どうもありがとうございます! 一発で解決することができました!!