• ベストアンサー

エクセルif関数について

エクセル2010を使用しております。 シート1に日付と番号などが入力されています。 シート2には横並びのカレンダー(添付) A3に次ような結果を入れたいです。 シート1に入力された日付とシート2のカレンダーがイコールなら シート1の番号を返す。 下記では、エラーになってしまいました。 =IF(A1=マザー!D4:D74,マザー!A4:A74,"")

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

  • ベストアンサー
noname#203218
noname#203218
回答No.2

A3に下記式コピーし、右にフィルコピー(但し シート名がマザーであるなら修正下さい) =IF(ISERROR(MATCH(A1,Sheet1!$D$4:$D$74,0)),"",INDIRECT("Sheet1!"&ADDRESS(MATCH(A1,Sheet1!$D$4:$D$74,0)+3,1))) 数式でMATCH(A1,Sheet1!$D$4:$D$74,0)+3と+3しているのはMATCH関数では検索データが検索範囲の何番目にあるという相対数値が返り値となります。D4から始まっているので、D4に検索データがある場合は1が返り値になります。ADRESSS関数で行番号を得たいのでMATCH関数の返り値に+3をしています。他のシートで使用される場合はその辺りを考慮して数式を作成する必要があります。

snoopykun
質問者

お礼

詳しくお答えいただきありがとうございます。 いただきました回答で解決いたしました! 複雑に見えてしまい、どうしても敬遠しがちだったのですが、 詳細を教えていただき、よく理解できました。 乱暴な質問をしてしまい申し訳ありませんでした。 ご親切に感謝いたします。

その他の回答 (2)

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

簡単に =IFERROR(INDEX(マザー!$A4:$A74,MATCH(A1,マザー!$D4:$D74,0)),"") といった具合でいいです。 #補足 >日付と番号などが入力されています。 具体的に「どこに」それらを記入しているのか,目に見えるあなたのエクセルの様子をキチンとご相談に書いておかないと,「具体的な数式」の回答はもらえません。 例えばで教われば自力で応用できるから構わないという事なら心強いですが。次回のご参考に。

snoopykun
質問者

お礼

ご回答ありがとうございます。 質問の言葉が足らず申し訳ありません。 残念ながら、今回いただいた回答では解決しませんでしたが、 参考にさせていただきます。

回答No.1

VLOOKUP関数、HLOOKUP関数を使いましょう。 V/HLOOKUPで検索値が見付からない場合は「#N/A!」になるので、IF関数とISNA関数とV/HLOOKUP関数を組み合わせましょう。

snoopykun
質問者

お礼

すぐにご回答いただきありがとうございます。 今回はうまくいきませんでしたが、勉強になりました。

関連するQ&A

専門家に質問してみよう