• ベストアンサー

日付 関数の質問

いつも回答して頂きありがとうございます。 特定の曜日と特定の日付だけ確認と表示される関数を作りましたが、どちらも当てはまらない時、#N/A表示になります。#N/A表示にしたくないのですがどうすればよろしいでしょうか?御指導よろしくお願い致します。 日付の入った右隣に下記関数を入力しています。 =IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))

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

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

エラー表示の原因はF3セルからF6セルの範囲にB3に該当する日付が無い場合です。その場合にはMATCH関数事態でエラーとなってしまいますので、もしもMATCH関数の値が0以上でなければ空白にしなさいとの式は誤っています。 次のような式にすればよいでしょう。 =IF(WEEKDAY(B3)=5,"確認",IF(COUNTIF($F$3:$F$6,B3),"確認","")) MATCH関数は該当する日にちが無い場合にはエラーとなりますので、このような式で使うことは止めてCOUNTIF関数を使うことが推すすめです。 MATCH関数はF3セルからF6セルの範囲でB3の日付がどの行にあるのかなどを求めるために使うのでしたらよいのですが。その場合でも該当する日付が無い場合にはエラーとなりますので、例えばCOUNTIF関数などで該当の日付が有ることを確認してから、該当の日付が有る場合にその該当の日付がどの行にあるかを求めるためなどに使いますね。

kero1192kero
質問者

お礼

御指摘ありがとうございました。 CountIfを使用して、エラーは表示しませんでした。CountIf の存在は知っていましたが、思い浮かびませんでした。応用力が全くないので、恥ずかしい限りです。

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

その他の回答 (2)

回答No.2

すみません、間違いました(^_^;) =IF(ISERROR(IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))),"",IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))) これをコピーして貼り付けてください。 分解すると 倫理式【ISERROR(IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))】 真の場合【""】 偽の場合【IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))】 になります。

kero1192kero
質問者

お礼

御提案ありがとうございました。 さっそく貼り付けてみました。エラーの表示もなくなり、見た目もきれいになりました。関数もいろんな組み合わせ方があるのですね。勉強になります。

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

iserror関数で解決すると思います。 =IF(ISERROR(IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))),"",IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))) これをコピーして貼り付けてください。 iserror関数はエラーが出たときにどういう計算をさせるかという関数です。この場合はエラーが出たときに""で空白にしています。 分解するとIF関数で倫理式に ISERROR(IF(WEEKDAY(B+1:10485763)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認",""))) 真の場合"" 偽の場合IF(WEEKDAY(B3)=5,"確認",IF(MATCH(B3,$F$3:$F$6,0)>0,"確認","")) になります。

kero1192kero
質問者

お礼

御提案ありがとうございました。 さっそくNo.2の式を貼り付けてみました。エラーの表示もなくなり、見た目もきれいになりました。関数もいろんな組み合わせ方があるのですね。勉強になります。

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

関連するQ&A