Excelには、テーブル内の列の値を検索し、何かが見つかった場合にそのテーブル内の特定の列から値を返すVLOOKUP
関数があります。そうでない場合は、エラーが発生します。
値が列で見つかったかどうかに応じて、trueまたはfalseを返すだけの関数はありますか?
VLOOKUP()をIFERROR()でラップすることができます
編集:Excel 2007より前は、=IF(ISERROR()...)
を使用してください
COUNTIFを使用するだけです!他の提案よりもはるかに高速に記述および計算できます。
編集:
B1の値が列Cにある場合、セルA1は1である必要があり、そうでない場合は2である必要があるとします。これをどのように行いますか?
B1の値が列Cにある場合、A1は正になり、そうでない場合は0になります。これは、数式=COUNTIF($C$1:$C$15,B1)
で簡単に実行できます。つまり、範囲C1:C15
のセルをカウントします。 B1
と同じです。
COUNTIF
をVLOOKUP
およびIF
と組み合わせることができます。これは、2回のルックアップ+ ISNAを使用するよりもはるかに高速です。 IF(COUNTIF(..)>0,LOOKUP(..),"Not found")
少しグーグルすると、たくさんの 例 が表示されます。
それでもISERRORでラップする必要がありますが、MATCH()
の代わりにVLOOKUP()
を使用できます。
指定された順序で指定された値に一致する配列内のアイテムの相対位置を返します。アイテム自体ではなく範囲内のアイテムの位置が必要な場合は、LOOKUP関数の代わりにMATCHを使用します。
セルの範囲で単語「キー」を探していると仮定した場合の完全な例を次に示します。
=IF(ISERROR(MATCH("key",A5:A16,FALSE)),"missing","found")
完全一致を強制するにはFALSE
が必要です。そうでない場合は、最も近い値が検索されます。
次を使用できます。
=IF(ISERROR(VLOOKUP(lookup value,table array,column no,FALSE)),"FALSE","TRUE")
私たちは常に使用してきました
if(iserror(vlookup,"n/a",vlookup))
Excel 2007では、エラーが発生した場合にvlookupを実行して出力を追加できる、IfErrorが導入されましたが、2003では役に立ちません...