2016-11-15 6 views
0

Vlookup関数を使用して、参照されるセル値に依存する必要があります。私の方程式を見てください。ここで異なる列のインデックスを持つExcel Vlookupの他の関数は、参照されるセルの値に依存しますか?

=IF(G2=1,VLOOKUP(A9,Pipe_Size_Chart,2,FALSE),IF(G2=2,VLOOKUP(A9,Pipe_Size_Chart,3,FALSE),IF(G2=3,VLOOKUP(A9,Pipe_Size_Chart,4,FALSE),IF(G2=4,VLOOKUP(A9,Pipe_Size_Chart,5,FALSE),IF(G2=5,VLOOKUP(A9,Pipe_Size_Chart,6,FALSE),IF(G2=6,VLOOKUP(A9,Pipe_Size_Chart,7,FALSE),IF(G2=7,VLOOKUP(A9,Pipe_Size_Chart,8,FALSE)))))))) 

、すべてのvlookup関数呼び出しは、セルG2値に依存します。その値に応じて、各機能の列インデックスが変更されます。しかし、私はより高度な、よりコンパクトな機能を使用したいと思います。私はマクロを使用することを心配していません。誰でも私にアドバイスをお願いできますか?

+1

このような複雑な式は必要ありません。数式はVLOOKUP(A9、Pipe_Size_Chart、G2 + 1、FALSE)に置き換えることができます – eshwar

+0

VLOOKUP(A9、Pipe_Size_Chart、$ G $ 2 + 1、FALSE) ' – Rosetta

+0

それは実際に動作します! – Soros

答えて

0

ifが7の場合は、ifsで必要な値に一致するヘルプ配列を作成できます。私が意味することは、g2 = 1が2、g2 = 2が3となることなどが必要な場合は、最初のステップとして数字0,1,2,3,4,5の配列を作成することができます。 6,7(この配列 "A1:A8"とする)。

次に、あなたのVLOOKUPであなたはMATCH関数を使用することができます。 = VLOOKUP(A9、Pipe_Size_Chart、MATCH(G2、A1:A8,0)、FALSE)

MATCH関数は、あなたの相対的な位置を返します。私が作成したこの配列の中のセルG2内にあるルックアップ値です。これがインデックスの列番号になります。この例では、G2 = 6の場合、MATCH関数は配列内の7番目の番号であるため、7という数値を返します。

こちらがお役に立てば幸いです。問題が解決しない場合は、テーブルから視覚的な例を提供して、より正確な回答を提供してください。

関連する問題