web-dev-qa-db-ja.com

Googleスプレッドシートの結果が間違っているルックアップ関数(vlookup、hlookup、match)

次のスプレッドシートは、Googleスプレッドシートのルックアップ関数の非常に奇妙な動作を示しています。私はこれらの機能を何回も問題なく使用しました。誰かがそれが彼らの側でも起こることを確認できますか?

ドキュメントの例: https://docs.google.com/spreadsheets/d/16lRQ72K28CtObY_ChzpNQUVTl_EgbjEyRcpP5QOZKzE/edit?usp=sharing

9
zstolar

デフォルトでは、VLOOKUPは近似一致を行います。 @Pnutsは、検索がバイナリであるため、すべての場合に目的の結果が返されるわけではないと説明しました。

VLOOKUP のExcelsオプションパラメータが呼び出されrange_lookupおよび引用符:

range_lookupオプション。 VLOOKUPで完全一致または近似一致のどちらを検索するかを指定する論理値:

  • Range_lookupがTRUEであるか省略されている場合、完全一致または近似一致が返されます。完全に一致するものが見つからない場合は、lookup_valueよりも小さい次に大きい値が返されます。

  • 重要range_lookupがTRUEであるか省略されている場合、table_arrayの最初の列の値は昇順で並べ替える必要があります。そうしないと、VLOOKUPが正しい値を返さない可能性があります。

  • 詳細については、「範囲またはテーブルでデータを並べ替える」を参照してください。

  • Range_lookupがFALSEの場合、table_arrayの最初の列の値を並べ替える必要はありません。

  • Range_lookup引数がFALSEの場合、VLOOKUPは完全に一致するもののみを検索します。 table_arrayの最初の列にlookup_valueと一致する値が2つ以上ある場合は、最初に見つかった値が使用されます。完全に一致するものが見つからない場合は、エラー値#N/Aが返されます。

VLOOKUP のGoogleのオプションパラメータはis_sortedと呼ばれ、引用符で囲まれています。

is_sorted-[オプション-デフォルトではTRUE]-検索する列(指定した範囲の最初の列)を並べ替えるかどうかを示します。

  • Is_sortedがTRUEであるか省略されている場合、最も近い一致(検索キー以下)が返されます。検索列のすべての値が検索キーより大きい場合、#N/Aが返されます。

  • Is_sortedがTRUEに設定されているか省略されていて、範囲の最初の列がソートされた順序になっていない場合、誤った値が返される可能性があります。

  • Is_sortedがFALSEの場合、完全一致のみが返されます。一致する値が複数ある場合は、最初に見つかった値に対応するセルの内容が返され、そのような値が見つからない場合は#N/Aが返されます。

VLOOKUPとのexactマッチングが必要な場合は、オプションのパラメーターにFALSEを追加するだけで、完全一致のルックアップを強制できます。 MATCHを使用している場合は、0を追加します。

したがって、スプレッドシートの数式は次のようになります。

=VLOOKUP(A2,A1:E13,5,FALSE)
=VLOOKUP("n1-standard-2",A1:E13,5,FALSE)
=MATCH(A2,A1:A13,0)
=MATCH("n1-standard-2",A1:A13,0)
=HLOOKUP(A1,A1:E13,5,FALSE)
=HLOOKUP("n1-standard-1",A1:E13,5,FALSE)
22
chancea