Excel MATCH関数は一致した場合に#N/Aを返します

Excel MATCH関数は一致した場合に#N/Aを返します

Excel スプレッドシートに、年間のすべての日付と英国の銀行休業日のリストを含む行があります。条件付き書式を使用して、銀行休業日に当たる日付を強調表示したいと考えています。

単純な比較を使用して日付が一致するかどうかをテストすると=CX$3=$A$49、Excel は を返しますTRUE

しかし、 を使用すると=MATCH(CX$3, $A$48:$A$56, 0)、Excel は#N/Aエラーを返します。私の計画は、MATCH条件付き書式で次のように使用し、日付行 ($E$3:$NF$3) のすべての日付に条件を適用することです。

=NOT(ISERROR(MATCH(E$3, $A$48:$A$56, 0)))

私は試みた問題のトラブルシューティング-

  • 両方のセルは同じロケール (英語 (イギリス)) で同じ書式 (日付) に設定されています。
  • 不要な空白はありません ( を返す単純な比較によって証明されますTrue)。
  • 数式を入力した後に、ctrl, shift+を押しました(ただし、これまで使用した他のまたは関数ではこれを行う必要はありませんでした)。enterINDEXMATCH

他にどのような問題が原因でMATCH機能が失敗する可能性がありますか?

答え1

TLDR: 使ってみてください=ISNUMBER(MATCH(E3, $A$48:$A$56, 0))

次のアプローチを試すことができます:

条件付き書式を設定する列/行を選択します。

私の例では、列 A に 2023 年 1 月 1 日から 2023 年 12 月 31 日までのすべての日付 (A1:A365) があり、列 B (B1:B6) で「休日」を表すためにランダムな日付を選択しています。

列A(日付)を選択した場合:

ホーム > 条件付き書式 > 新しいルール > 数式を使用して書式設定するセルを決定する

式:=ISNUMBER(MATCH(A1,B$1:B$6,0))

次の例のように日付が連続している場合でも、これは機能するはずです。=ISNUMBER(MATCH(A2,$A$1:$NA$1,0))

私の行の例では、日付は A1:NA:1、休日は A2:D2 です。

下部でフォーマットを設定します。

列 A (日付) の日付が列 B (休日) の日付と一致する場合、指定した条件に基づいてそのセルが書式設定されます。

これは列 A の各セルに適用されます (例: A1、A2、A3...A365)。

これを確認するには、「条件付き書式」>「ルールの管理」>「このワークシート」>「適用対象」を選択します。

「適用先」セクションは、数式を実行する範囲である必要があります (例: =$A$1:$A$365)

関連情報