• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでの関数を使った条件抽出方法について)

エクセルでの条件抽出方法について

このQ&Aのポイント
  • エクセル初心者のための条件抽出方法について解説します。
  • Sheet1の特定のセルに対して、Sheet2中の条件に一致するセルの値を表示させる方法について詳しく説明します。
  • HLOOKUPやCOLUMNを使った関数式の組み合わせを試しましたが、上手くいかなかった場合でも心配しないでください。簡単な解説をしていきます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

シート2の横項目がご質問に書かれているとおりに確かに1,2,3…でしかないなら、 B2: =VLOOKUP(A2,Sheet2!$A$2:$D$5,C$1+1,FALSE) 以下コピー で十分です。 実際には1,2,3じゃなく何か順不同であるなら =VLOOKUP(A2,Sheet2!$A$2:$D$5,MATCH(C$1,Sheet2!A$2:D$2,0),FALSE) 以下コピー などのように一捻りする事もできます。

hiromomozo
質問者

お礼

早々のご回答ありがとうございます! できました! 一致する列の番目はMATCH関数で取れるんですね。 とても助かりました。 ありがとうございました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1のB2セルには次の式を入力し下方にドラッグコピーします。 =IF(OR(A2="",COUNTIF(Sheet2!A:A,A2)=0,COUNTIF(Sheet2!$2:$2,C$1)=0),"",INDEX(Sheet2!$A:$D,MATCH(A2,Sheet2!A:A,0),MATCH(C$1,Sheet2!$2:$2,0))) 一致するデータがない場合には空白となります。時に数字を含む文字列などでは数字が半角文字になっているのか全角文字になっているのかで空白になることもありますね。

hiromomozo
質問者

お礼

ご回答ありがとうございます! なるほど、MATCHで行・列位置を検索特定し、INDEXで値を取り出せばよいということですね。値を取り出す方法は一つではないんですね。 とても勉強になりました、ありがとうございます! あと、一致しない場合のエラー処理はIF(OR)で行うことも教えていただきありがとうございます。 keithinさんのご回答を試して成功したため、keithinさんをベストアンサーに選ばせていただいたあとで、KURUMITOさんのご回答に気づいたのですが、KURUMITOさんのご回答ともわたし的にはベストアンサーでした。 ありがとうございました。