web-dev-qa-db-ja.com

VLOOKUP関数の列インデックスがテキストから外挿された数値であるIFステートメント内でVLOOKUPを組み合わせるにはどうすればよいですか?

Excelには次のテーブルがあります。

Product Stock

そして

Stock Analysis

製品の在庫テーブル(PST)はこれよりも広範囲ですが、この質問の目的のために、私はそれを削減しました。

Stock Analysisテーブル(SAT)の列の値を、ProductStockテーブルのSize列の値と一致させたい。

たとえば、この場合、商品在庫テーブルのサイズ列の値(PST)8です。 なので、株価分析テーブルのサイズ8列の値を調べたいと思います。私の値が5の場合、株式分析テーブルでサイズ5を検索します(SAT)

Product StockテーブルのSize列の値が指定されたディメンションに基づいていることを確認するためにデータ検証が実行されているため、Stockの列でもあるサイズの範囲のみが含まれることに注意してください。分析表

また、[〜#〜] sat [〜#〜]の次の行が確実に実行されるように数式が挿入されています常に前の行より1つ大きいバッチ番号を持っています(つまり、新しい行ごとに[バッチなし]列に1が増加します)。これは、でバッチが繰り返されないようにするためです。 [〜#〜] sat [〜#〜]

私がこれまでに持っているのは:

=IF(PST[Batch No]=SAT[Batch No, VLOOKUP(PST[Batch No], PST, Stuck here, FALSE), "")

col_index_numで必要なのは、[〜#〜] pst [〜#〜]の[サイズ]列の値と一致させることです。 [〜#〜] sat [〜#〜]のヘッダー内の文字列の最後の文字(Batch Noヘッダーを除く)(これは影響しない可能性があります)それでも)。一致する場合は、テーブルの列番号を指定します。

これにより、その列の下にバッチ番号と一致する値が表示されます。

これがかなり理解できることを願っています。

VBAについて詳しく知りたくありません

4
MrMarho

このようなもの?

enter image description here

_H12_の式は次のとおりです。

_=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)
_

編集:_H12_の式がどのように機能するか。

列番号を提供する部分、

_MATCH("Size "&F12,$C$5:$H$5,0)
_

最初にプレフィックス_"Size "_を値_F12_(= 8)と連結し、文字列_"Size 8"_になります。次に、ヘッダー行_$C$5:$H$5_のセルを調べてこのキー文字列を見つけ、一致するセルの番号、つまり_6_(ヘッダーの最後のセル)を返します。次に、式

_=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)
_

本質的に

_=VLOOKUP(E12,$C$6:$H$8,6,FALSE)
_

これは、範囲_E12_の最初の列で_$C$6:$H$8_(= 1)の内容を検索します。つまり、_Batch No=1_に対応する行を選択します。これは_1_です。また、行(= 1)と列(= 6)の数値が_$C$6:$H$8_の範囲にある場合、VLOOKUPは_H6_に格納されている値(_7_)を返します。

10
g.kov

Batch#とSizeテキストに一致するindex関数を試してください。

=INDEX(C6:H8,MATCH($E12,$C$6:$C$8,0),MATCH("Size "&$F12,$C$5:$H$5,0))
2
Coo