VLOOKUPを使用してデータテーブルから値を返す場合、関数は戻り値で空白とゼロ値を区別しません。ソース値がゼロの場合、VLOOKUPは0を返します。同様に、ソースが空白の場合でも、VLOOKUPは値0を返します。目的によっては、これが行われない場合があります。検索対象のセルが空白か、それとも空白かを知る必要があります。本当に0が含まれている場合。

追求できる多くの異なる解決策があります。 1つの解決策は、VLOOKUPが0を返しても、ソースセルの長さを正しく報告するという事実に依存しています。したがって、返されるものにLEN関数を使用すると、ソースセルが空の場合、LEN関数は0を返しますが、ソースに0が含まれている場合、LENは1を返します(0の値は1文字の長さです)。これは、標準のVLOOKUPの代わりに次の式を使用できることを意味します。

=IF(LEN(VLOOKUP(B1,D:E,2,0))=0,"",VLOOKUP(B1,D:E,2,0))

この場合、VLOOKUPが返すものの長さが0の場合、Excelは実際にはルックアップを実行しません。つまり、空白が返されます。長さが0でない場合にのみ、実際のVLOOKUPが実行されます。

この同じ概念には他にもバリエーションがあり、それぞれが参照されているデータの異なる特性をテストし、実際にそのデータを検索するかどうかを決定します。たとえば、このバリエーションは、ソースが空白であるかどうかを直接テストします。

=IF(VLOOKUP(B1,D:E,2)="","",VLOOKUP(B1,D:E,2))

数式を変更して、ソースセルの複数の条件を確認することもできます。たとえば、ソースが空白の場合、またはソースに#N / Aエラーが含まれている場合、このバリエーションは空白を返します。

=IF(ISNA(VLOOKUP(B1,D:E,2,0))+(VLOOKUP(B1,D:E,2,0)="")

,"",VLOOKUP(B1,D:E,2,0))

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

このヒント(3075)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。