• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:IFとVLOOKUPの組み合わせについて)

ExcelのIFとVLOOKUPの組み合わせについての質問

このQ&Aのポイント
  • ExcelのIF関数とVLOOKUP関数を組み合わせて使用する場合について質問です。同じファイル内の複数のシートで、特定の条件に応じてデータを検索し取得する方法を知りたいです。
  • 購入依頼台帳(参照用)シートの中で、V36と同じ数字が他のシートで一致する場合はその行の8列目の値を取得し、一致しない場合は「-」と表示するための式を作成したいと思っています。
  • IF関数の中に他の関数(COUNTIF関数やVLOOKUP関数)を組み合わせて使用することは可能ですが、式の書き方や考え方に不備がある場合にエラーが発生することがあります。詳しい条件やエラーメッセージを教えていただくと、より具体的なアドバイスができます。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

NO3です。 数式に誤りがありましたので訂正します。 =IF(COUNTIF(△△!A:G,V36),INDEX(△△!H:H,SUMPRODUCT((△△!$A$1:$G$65535=V36)*ROW(△△!$A$1:$A$65535))),"-") 因みにSUMPRODUCT関数は配列数式の為、列指定(A:A)が出来ませんので最大行番号(65536行)-1としています。

777MS777
質問者

お礼

すごい!! まだ、INDEXやSUMPRODUCTやROWを知らなかったので、 理解するのにちょっと時間がかかりました!! でも、今自分がやりたいセルにやってみたら出来ました! すごいです!! まさにやりたい通りに上手くいきました! 感動しました。 ありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

NO1です。 ひょっとして△△!A:H範囲をご希望されているのならば、重複していない事が前提で次の方法があります。 =IF(COUNTIF(△△!A:G,V36),INDEX(△△!H:H,SUMPRODUCT((△△!$A$1:$G$65535)*ROW(△△!$A$1:$A$65535))),"-")

すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

NO1です。 >検索範囲が最左列のみで△△'!Aの範囲しか検索されないのか教えていただいてもよろしいでしょうか? ⇒VLOOKUP関数の仕様だからです。 >考え方自体違うのでしょうか?? ⇒シートA列上に検索値が存在していた場合、H列の情報を抽出ということですから考え方はVLOOKUP関数として間違っていません。  但し、回答の通り、COUNTIF関数の検索範囲が△△!A:HですからB列以降の場所で検出した場合、VLOOKUP関数で見つからない(#N/Aエラー)事になりますので、数式としては次の様にした方が良いと思います。  =IF(COUNTIF('△△'!A:A,V36),VLOOKUP(V36,'△△'!A:H,8,0),"-")

777MS777
質問者

お礼

詳しくありがとうございました!! いつも本当にありがとうございます。 解決しました!!意味がわかりました! すごい勉強になりました!

すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

COUNTIF関数は△△'!A:H範囲内を検索しますが、VLOOKUP関数は、検索範囲の最左列のみだから△△'!Aの範囲しか検索しません。 データの確認して下さい。

777MS777
質問者

お礼

回答ありがとうございます。 続けて質問になってしまいますが、 >COUNTIF関数は△△'!A:H範囲内を検索しますが、VLOOKUP関数は、検索範囲の最左列のみだから△△'!Aの範囲しか検索しません。 初歩的で申し訳ないのですが、なぜVLOOKUP関数だと、 検索範囲が最左列のみで△△'!Aの範囲しか検索されないのか 教えていただいてもよろしいでしょうか? 先ほど質問した↓で、 =IF(COUNTIF('△△'!A:H,V36),VLOOKUP(V36,'△△'!A:H,8,0),"-") 「もし、シート○○のV36と同じ数字が、シート△△の中にあった場合は、シート△△の中のV36と同じ数字の行の8列目をかえし、無かった場合は「-」をかえす」 という風に数式を作ったつもりですが、もしかしてそもそもの関数の 考え方自体違うのでしょうか?? あまり解っていなくて、 すごい初歩的な質問で申し訳ないのですが、教えていただけますか??

すると、全ての回答が全文表示されます。

関連するQ&A