欠損値の検出
Excel では、リスト A の値がリスト B に含まれているかどうかを確認するために、2 つのリストを比較する必要がある場合があります。たとえば、お客様の注文リストにある製品が、仕入先が提供する製品リストに存在するかをチェックしたいといったケースです。このタスクを完了するには、以下の3 つの方法からお好みのものを選んでご利用ください。

MATCH、ISNA、および IF で欠損値を検出
VLOOKUP、ISNA、および IF で欠損値を検出
COUNTIF および IF で欠損値を検出
MATCH、ISNA、および IF で欠損値を検出
上記のスクリーンショットに示されているように、お客様のリスト内のすべての製品が仕入先のリストに存在するかどうかを確認するには、まず MATCH 関数を使って、お客様のリスト(リスト A)にある各製品が仕入先のリスト(リスト B)のどの位置にあるかを検索します。MATCH 関数は、製品が見つからない場合に#N/A エラーを返します。この結果を ISNA 関数に渡すと、#N/A エラーが TRUE に変換され(つまり、該当製品が欠品していることを示します)、その後、IF 関数が期待通りの結果を返します。
一般的な構文
=IF(ISNA(MATCH()))「lookup_value」,lookup_range,0)),「Missing」,「Found」)
※注:「Missing」や「Found」は必要に応じて任意の値に変更可能です。
- lookup_value:MATCH 関数がその値の位置を検索するために使用する値です()lookup_range 内に存在する場合)。存在しない場合は#N/A エラーが返されます。ここでは、お客様のリスト内の製品を指します。
- lookup_range:lookup_valueと比較するセル範囲です。ここでは、仕入先の製品リストを指します。
上記のスクリーンショットのように、お客様のリスト内のすべての製品が仕入先のリストに存在するかどうかを確認するには、以下の数式をセル H6 にコピーまたは入力し、Enterキーを押して、結果を取得してください。
=IF(ISNA(MATCH()))30002,$B$6:$B$10,0)),「Missing」,「Found」)
または、セル参照を使用して数式を動的にします。
=IF(ISNA(MATCH()))G6,$B$6:$B$10,0)),「Missing」,「Found」)
√ 注記:上記のドル記号($)は絶対参照を示しており、数式内のlookup_rangeは、数式を他のセルに移動またはコピーしても変更されません。一方、lookup_valueにはドル記号が付加されておらず、動的にするようになっています。数式を入力後、フィルハンドルを下にドラッグして、下のセルにも適用してください。

数式の説明
ここでは、以下の数式を例として使用します。
=IF()ISNA()MATCH(G8,$B$6:$B$10,0)),「Missing」,「Found」)
- MATCH(G8,$B$6:$B$10,0):match_type 0により、MATCH 関数は3004(セル G8 の値)が配列 $B$6:$B$10 内で最初に一致する位置を返すよう指定されます。しかし今回のケースでは、MATCH 関数が検索配列内に該当する値を見つけられなかったため、#N/Aエラーを返しています。
- ISNA()MATCH(G8,$B$6:$B$10,0))=ISNA()#N/A):ISNA 関数は、「#N/A」エラーかどうかを判定します。該当する場合は TRUE、それ以外の場合は FALSE を返します。したがって、この ISNA 数式はTRUEを返します。
- IF()ISNA()MATCH(G8,$B$6:$B$10,0)),「Missing」,「Found」) = IF(TRUE,「Missing」,「Found」):ISNA と MATCH による比較結果が TRUE の場合、IF 関数は「Missing」を返し、それ以外の場合は「Found」を返します。したがって、この数式はMissingを返します。
VLOOKUP、ISNA、IF で欠損値を検索する
ご自身のリストにあるすべての製品がサプライヤーのリストに含まれているかを確認するには、MATCH 関数の代わりに VLOOKUP 関数を使用できます。VLOOKUP 関数も MATCH 関数と同様、対象の値が別のリストに存在しない場合(つまり欠損している場合)に#N/A エラーを返すためです。
一般的な構文
=IF(ISNA(VLOOKUP()))「lookup_value」,lookup_range,1,FALSE)),「Missing」,「Found」)
※注:「Missing」や「Found」は、必要に応じて任意の値に変更可能です。
- lookup_value:VLOOKUP 関数が値の位置を検索するために使用する値です()lookup_range 内に存在する場合)。存在しない場合は#N/A エラーを返します。ここでは、お客様のリスト内の製品を指します。
- lookup_range:lookup_valueと比較するセル範囲を指します。ここでは、仕入先の製品リストです。
ご自身のリストにあるすべての製品がサプライヤーのリストに存在するかどうかを確認するには、以下の数式をセル H6 にコピーまたは入力し、Enterキーを押して、結果を取得してください。
=IF(ISNA(VLOOKUP()))30002,$B$6:$B$10,1,FALSE)),「Missing」,「Found」)
または、セル参照を使って数式を動的にすることもできます。
=IF(ISNA(VLOOKUP()))G6,$B$6:$B$10,1,FALSE)),「Missing」,「Found」)
√ 注記:上記のドル記号($)は絶対参照を示しており、lookup_rangeは数式内で、他のセルに数式を移動またはコピーしても変更されません。一方、lookup_valueにはドル記号が付いておらず、動的に参照されるようになっています。数式を入力したら、フィルハンドルを下にドラッグして、下のセルにも適用してください。

数式の説明
ここでは、以下の数式を例として使用します。
=IF()ISNA()VLOOKUP(G8,$B$6:$B$10,1,FALSE)),「Missing」,「Found」)
- VLOOKUP(G8,$B$6:$B$10,1,FALSE):range_lookup にFALSEを指定することで、VLOOKUP 関数は3004(セル G8 の値)と完全に一致する値のみを検索し、返すようになります。lookup_value が3004で、その値が配列 1の1 列目に存在する場合は、VLOOKUP は該当する値を返します。一方、存在しない場合は#N/A エラーを返します。今回の例では、3004 は配列内に存在しないため、結果は#N/Aとなります。#N/A.
- ISNA()VLOOKUP(G8,$B$6:$B$10,1,FALSE))=ISNA()#N/A):ISNA 関数は、「#N/A」エラーかどうかを判定します。該当する場合は TRUE、それ以外の場合は FALSE を返します。したがって、この ISNA 数式はTRUEを返します。
- IF()ISNA()VLOOKUP(G8,$B$6:$B$10,1,FALSE)),「Missing」,「Found」) = IF(TRUE,「Missing」,「Found」):ISNA と VLOOKUP による比較結果が TRUE の場合、IF 関数は「Missing」を返し、それ以外の場合は「Found」を返します。したがって、この数式はMissingを返します。
COUNTIF と IF で欠損値を検索する
ご自身のリストにあるすべての製品がサプライヤーのリストに存在するかどうかを確認するには、COUNTIF 関数と IF 関数を使ったよりシンプルな数式を使用できます。この数式は、Excel がゼロ(0)以外の任意の数値を TRUE と評価するという性質を利用しています。したがって、ある値が別のリストに存在する場合、COUNTIF 関数はそのリスト内での出現回数を返し、IF関数はその数値を TRUE と見なします。一方、値がリストに存在しない場合は COUNTIF 関数が0 を返し、IF関数はそれを FALSE と見なします。
一般的な構文
=IF(COUNTIF())「lookup_range」,lookup_value),「Found」,「Missing」)
※注記:「Found」や「Missing」は、必要に応じて任意の値に変更可能です。
- lookup_range:lookup_valueと比較するセル範囲です。ここでは、仕入先の製品リストを指します。
- lookup_value:COUNTIF 関数が出現回数をカウントするために使用する値です()lookup_range 内)。ここでは、お客様のリストに含まれる製品を指します。
ご自身のリストにあるすべての製品がサプライヤーのリストに存在するかどうかを確認するには、以下の数式をセル H6 にコピーまたは入力し、Enterキーを押して、結果を取得してください。
=IF(COUNTIF())$B$6:$B$10,30002),「Found」,「Missing」)
または、セル参照を使って数式を動的にしましょう。
=IF(COUNTIF())$B$6:$B$10,G6),「Found」,「Missing」)
√ 注記:上記のドル記号($)は絶対参照を示しており、lookup_rangeは数式内で、数式を他のセルに移動またはコピーしても変更されません。一方、lookup_valueにはドル記号が付加されておらず、動的にするようになっています。数式を入力後、フィルハンドルを下にドラッグして、下のセルにも適用してください。

数式の説明
ここでは、以下の数式を例として使用します。
=IF()COUNTIF($B$6:$B$10,G8),「Found」,「Missing」)
- COUNTIF($B$6:$B$10,G8):COUNTIF 関数は、3004(セル G8 の値)が範囲 $B$6:$B$10 内に何回出現するかをカウントします。明らかに、3004 はこの範囲に含まれていないため、結果は0となります。
- IF()COUNTIF($B$6:$B$10,G8),「Found」,「Missing」) = IF(0,「Found」,「Missing」):IF 関数は0 を FALSE と見なします。そのため、この数式はMissing(第1 引数が FALSE と評価された場合に返される値)を返します。
関連関数
IF 関数は、Excel ワークブックで最もシンプルで有用な関数の一つです。単純な論理テストを実行し、その比較結果に基づいて、TRUE の場合は指定した値を、FALSE の場合は別の値を返します。
Excel の MATCH 関数は、指定したセル範囲内で特定の値を検索し、その相対位置を返します。
Excel の VLOOKUP 関数は、テーブルの先頭列で値を検索し、一致する行の指定された列から対応する値を返します。
COUNTIF 関数はExcel の統計関数で、指定した条件に一致するセルの個数をカウントするために使用されます。論理演算子(<、>、=など)や部分一致に使えるワイルドカード(? および *)もサポートしています。
関連数式
Excel で範囲内にある特定の文字列を含む最初の一致値を見つけるには、INDEX 関数と MATCH 関数をワイルドカード文字(アスタリスク[*]および疑問符[?])とともに使用できます。
場合によっては、部分的な情報に基づいてExcel にデータを取得させる必要があります。この課題を解決するには、VLOOKUP 関数をワイルドカード文字(アスタリスク * および疑問符 ?)と組み合わせて使用します。
従業員のパフォーマンス評価、学生の成績評価、重量に基づく郵送料金の計算など、Excel で近似一致を検索する必要がある場面はさまざまです。このチュートリアルでは、目的の結果を確実に得るために、INDEX 関数と MATCH 関数を組み合わせて使う方法をご紹介します。
場合によっては、複数の条件に基づいて最も近い値や近似一致値を検索する必要があります。そんなときは、INDEX 関数、MATCH 関数、そして IF 関数を組み合わせることで、Excel ですばやく実現できます。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。