サーチ…


前書き

テーブル配列の最初の列の値を検索し、同じ行の値をテーブル配列の別の列から返します。

VLOOKUPのVは垂直を表します。 HLOOKUPの代わりにVLOOKUPを使用してください。比較値は、検索するデータの左側の列にあります。

構文

  • VLOOKUP(lookup_value、table_array、col_index_num、range_lookup)

パラメーター

パラメータ説明
参照値 テーブルの左の列で検索している値。固定値、セル参照または名前付き範囲( 必須 )のいずれかになります。
テーブル・アレイ 左端で検索する列からなるセルの範囲。右にセルの値が返されます。 Excelセル参照または名前付き範囲にすることができます。 ( 必須
col_index_num テーブルの一番左の列から数えてデータを返す列の番号( 必須
range_lookup 検索の仕方を制御します。 FALSEまたは0の場合、Excelは正確な検索を実行し、一番左の列に完全に一致する箇所のみを返します。この数値検索では、丸めによる精度への注意が非常に重要です。 TRUEまたは1の場合、Excelは検索を実行して近似し、それ以上の最後の値を返します。そのため、最初の列は昇順でソートし、近似検索する必要があります。 range_lookup 。 ( オプション - デフォルトはTRUE)

備考

同様の機能:

  • HLOOKUP(VLOOKUPと同じですが、垂直方向ではなく水平方向に検索します)
  • MATCH (一致するlookup_valueがある場合は、範囲内の行番号を返します)
  • LOOKUP(VLOOKUPとMATCHに類似しており、下位互換性のために提供されています)

一般的なエラー:

  • range_lookupパラメータを設定せず、デフォルトの完全一致の動作を取得しない
  • table_arrayの固定アドレス範囲と絶対アドレス範囲 - 式をコピーするときに、 "ルックアップテーブル"参照も移動する

VLOOKUPを使用して従業員IDから人の姓を取得する

Vlookupは、範囲の一番左の列にある値を見つけ、右と同じ行にいくつかの列数の値を返します。

この表からEmployee ID 2の姓を探したいとしましょう:

従業員のリスト

=VLOOKUP(2,$A$2:$C$4,3,0)
  • データを取得している値は2です
  • 検索対象の表は、 $ A $ 2:$ C $ 4の範囲にあります
  • データを返す列は、左から3番目の列です
  • 完全一致( 0 )の場合にのみ結果を返したい

従業員IDに完全一致がない場合、 VLOOKUPVLOOKUP #N/Aを返します。

VLOOKUPを使用してボーナス率を計算します(例: "default"ビヘイビア)

ほとんどの場合、 range_lookupはFALSE(完全一致)として使用されます。このパラメータのデフォルトはTRUEです。この形式ではあまり一般的ではありませんが、この例では1つの使用例を示しています。スーパーマーケットは、顧客の毎月の支出に基づいてボーナスを提供します。

ここに画像の説明を入力

顧客が1か月に250ユーロ以上を過ごすと、1%のボーナスが得られます。 500ユーロ以上は2.5%などです。もちろん、顧客は常にテーブルの値のうちの1つを費やすとは限りません!

=VLOOKUP(261,$A$2:$B$6,2,TRUE)

このモードでは、VLOOKUPは列A最初の値(ボトムアップステップに続いて)を値261 より小さいか、またはそれに等しい値にします。つまり、 1%値が返されます。 この完全一致でない場合、表は最初の列の昇順でソートされなければなりません。

  • データを取得する値は261です。
  • 検索対象の表は、 $ A $ 2:$ B $ 6の範囲にあります
  • データを返す列は、左から2番目の列です
  • 正確でない一致( TRUE )がある場合にのみ結果を返すことができます。これは、デフォルトであるため、このTRUEから離れることができます

VLOOKUPを近似マッチングで使用する。

range_lookupパラメータがTRUE、または1に設定されている場合、VLOOKUPはおおよその一致を検出します。 「おおよそ」とは、VLOOKUPがlookup_valueよりも小さい最小値と一致することを意味します。 table_array ルックアップ値によって昇順にソートされなければならないことに注意してください。値がソートされていないと、結果は予測不可能になります。

ここに画像の説明を入力

完全一致のVLOOKUPの使用

VLOOKUP的な考え方は、スプレッドシートの表で情報を検索して別の表に置くことです。

たとえば、これがSheet1の表であるとします。

John        12/25/1990
Jane        1/1/2000

Sheet2では、 JohnAndy 、およびJaneをA1、A2、およびA3に配置します。

Johnの右にあるB1では、私は次のように答えました。

=VLOOKUP(A1,Sheet1!$A$1:$B$4,2,FALSE)

VLOOKUPに与えられるパラメータの簡単な説明を次に示します。 A1は私がSheet2のA1でJohnを探していることを意味します。ザ

Sheet1!$A$1:$B$4

Sheet1、列AからB(および行1から4)を調べるように関数に指示します。ドル記号は、絶対(相対ではなく)参照を使用するようにExcelに指示するために必要です。 (相対参照は、数式を下にコピーするときに望ましくない方法で全体がシフトすることになります。

2は、2番目の列を返すことを意味します。これは、日付です。

FALSEは、完全一致が必要であることを意味します。

私はB1をB2とB3にコピーしました。 (これを行う最も簡単な方法は、B1をクリックしてハイライトし、Shiftキーを押しながら下向きの矢印を2回押すと、B1、B2、B3が強調表示され、Ctrl + Dを押して式を入力しますB3をB1と同じ式にする必要があります。たとえば、 Sheet1!A1:B3からSheet1:A3:B5ルックアップテーブルの式が変更されている場合は、絶対参照を使用する必要がありますドル記号)を使用して変更を防止します)。

結果は次のとおりです。

John    12/25/1990
Andy    #N/A
Jane    1/1/2000

ジョンとジェーンを見つけ、誕生日を返しました。 Andyが見つかりませんでしたので、 #N/A表示されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow