サムはVLOOKUP関数を頻繁に使用します。これは非常に便利ですが、1つの重大な制限があります。ルックアップは、右側の列のみを参照できます。これは、SamがVLOOKUPの3番目のパラメーターとして、左側の列を参照するために負の値を使用できないことを意味します。彼は、この制限を回避する方法があるかどうか疑問に思います。

この制限を回避するには、実際には、再構築、INDEXの使用、およびCHOOSEの使用の3つの方法があります。これらの各メソッドを順番に見ていきます。

コンテンツの再構築

これは最も望ましくないアプローチかもしれませんが、私はそれをすぐに邪魔にならないようにします。ルックアップの左側に値を返す必要があることが非常に多い場合は、値が数式の右側になるようにワークシートを再構築することを検討してください。

再構築の別の方法は、数式の右側にあるヘルパー列を使用することです。このヘルパー列は、実際の戻り値を参照する必要があるだけです。たとえば、戻り値が列Aにあり、数式が列Eにある場合、ヘルパー列aJを追加できます。

J1の式は単純に= A1になります。それをコピーして、列Jを列Eの数式の戻り値として使用します。

INDEXとMATCHの使用

おそらく、Samが経験している問題に対する最も一般的なアプローチは、VLOOKUPの代わりにINDEX関数とMATCH関数を組み合わせて使用​​することです。たとえば、次のVLOOKUP式があるとします。

=VLOOKUP(G1,$C$1:$E$100,3,TRUE)

これは、C1:C100の範囲でG1の値を(近似一致として)検索し、E1:E100の対応する値を取得します。この式は、次の式と同等です。

=INDEX($E$1:$E$100,MATCH(G1,$C$1:$C$100,1))

したがって、ルックアップ列の左側に列を取得する場合(たとえば、A1:A100)、次のようなものを使用できます。

=INDEX($A$1:$A$100,MATCH(G1,$C$1:$C$100,1))

ルックアップによって完全一致が返されるようにしたい場合は、次のように、MATCH関数の最後の1を0に変更するだけです。

=INDEX($A$1:$A$100,MATCH(G1,$C$1:$C$100,0))

VLOOKUPとCHOOSEの使用

数式でVLOOKUP関数を実際に使用し続けたい場合は、CHOOSE関数も含めることで、左側の値を取得するように「だます」ことができます。

これを説明するために、ルックアップ値が列Dにあり、戻り値が列Aにあると仮定します。セルG1ではルックアップ値です。次の式は適切な値を返します:

=VLOOKUP(G1,CHOOSE({1,2},$D$1:$D$100,$A$1:$A$100),2,FALSE)

CHOOSE関数は、示されたセルで構成される配列を返します。

次に、VLOOKUP関数は、その配列の2番目の列(たまたま列A)から列Dの左側に値を返します。

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

このヒント(13608)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。