ボブは、関数がルックアップテーブルで一致しない場合に、VLOOKUPを使用して空白またはアスタリスクを返す方法があるかどうかを尋ねました。

はい、これは可能ですが、数式をもう少し複雑にすることなく行うことはできません。秘訣は、VLOOKUPが2つの方法のいずれかで動作できることを覚えておくことです。デフォルトでは、データテーブルが昇順であり、完全に一致するものがない場合、検索対象の値の次に低い値を返します。ただし、必要に応じて、VLOOKUPに完全一致のみを返すように強制することができます。次の例を考えてみましょう:

=VLOOKUP(5,A1:B10,2,FALSE)

この例では、ルックアップテーブル(A1:B10)を検索して、テーブルの最初の列で値5を探します。見つかった場合は、2番目の列の対応する値が返されます。見つからない場合、VLOOKUPは#N / Aエラーを返し、値が見つからなかったことを示します。 (4番目のパラメーターとしてのFALSE値は、近似一致が必要ないことを示します。)

したがって、重要なのは、この#N / A値を再生し、一致するものがない場合に返されるものを作成することです。次の数式は、ルックアップに一致するものがなかった場合、一連の5つのアスタリスクを返します。

=IF(ISNA(VLOOKUP(5,A1:B10,2,FALSE)),"**",VLOOKUP(5,A1:B10,2,FALSE))

ISNA関数は、VLOOKUPの結果が#N / Aエラーであるかどうかをテストするために使用されます。そうである場合、アスタリスクが返されます。そうでない場合は、ルックアップ値が返されます。数式で「何も」を返さないようにする場合は、

次に、このバリエーションを使用できます:

=IF(ISNA(VLOOKUP(5,A1:B10,2,FALSE)),"",VLOOKUP(5,A1:B10,2,FALSE))

このバージョンでは、ルックアップテーブルに一致するものがなかった場合、空白の文字列が返されます。一部の用途では、これは正確にあなたが望むものではないかもしれません。ゼロを返し、ワークシートでゼロを非表示にする方が適切な場合があります([ファイル]、[オプション]、[詳細]、[このワークシートの表示オプション]、[値がゼロのセルにゼロを表示する]をオフにします)。ゼロを返したい場合は、1回の変更のみで済みます:

=IF(ISNA(VLOOKUP(5,A1:B10,2,FALSE)),0,VLOOKUP(5,A1:B10,2,FALSE))

もちろん、IFERROR関数を使用して必要なものを見つけることもできます。数式の次のバリエーションは問題なく機能します:

IFERROR(VLOOKUP(5,A1:B10,2,FALSE),"**")

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10940)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。