質問: excelでのvlookup関数について キー1を1000倍したうえで完全一致のvlookup関数を使うと#n/aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「true」となります。 添付画像は、 検索先としてa列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、b列はa列を1000倍、c列はb列をround関数で整数値に丸めたものをキーとしました。 d列にvlookupで参照する値を入力し、e列以降で以下の異なるパターンで値を参照しています。 (1)【e・f列】 ・e列に整数値をキーとして130168~130192(step 1)で入力。 ・e列をキーとしてb~d列のvlookup関数としています。 『=vlookup(e3,b:d,3,false)』 (2)【g・h列】 ・g列にe列/100をキーとして計算。 ・g列をキーとしてa~d列のvlookup関数としています。 『=vlookup(g3,a:d,4,false)』 (3)【i列】 ・e列をキーとしてc~d列のvlookup関数としています。 『=vlookup(e3,c:d,2,false)』 シートを複製し、キーの入力範囲を0.001~0.025(e列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはtext、jis、ascなどを組み合わせて文字列としたキー同士のvlookupではエラーにならず値を参照できています。
回答: 整数値の完全一致を返したいのであれば、f3のセルは =vlookup(e3,c:d,2,false) とすべきではないですか? 1000倍した数を検索しても130168....になっているのですから。 roundで処理したところからのvlookupをするだけでいけるはずです。