我在 Excel 中有以下表格:
和
产品库存表(太平洋标准时间)比这更广泛,但是为了回答这个问题,我将其删减了。
我想查找股票分析表中某一列的值(星期六)与产品库存表的尺寸列中的值匹配。
例如,在本例中,我的产品库存表的尺寸列中的值(太平洋标准时间)是8所以我想查找8 号股票分析表的列。如果我的值是5然后查找尺寸 5在我的股票分析表中(星期六)。
请注意,已进行数据验证,以确保我的产品库存表的尺寸列中的值基于指定的维度,因此将仅具有一系列尺寸,这些尺寸也是库存分析表的列
还插入了公式,以确保下一行SAT批次号总是比前一行大 1(即,每增加一行,批次号列就会增加 1),这是为了确保批次中不会出现重复SAT
我目前有的是:
=IF(PST[Batch No]=SAT[Batch No, VLOOKUP(PST[Batch No], PST, Stuck here, FALSE), "")
我需要的col_index_num
是匹配我的 Size 列中的值太平洋标准时间到标题字符串的最后一个字符SAT不包括批次号标题(但这可能不会影响它)。当有匹配时,给出表格上的列号。
这将给出与批号相匹配的该列下的值。
我希望这是可以很容易理解的。
我不想深入研究 VBA
答案1
像这样吗?
公式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
它在范围 的第一列中查找 (=1) 的内容$C$6:$H$8
。换句话说,它选择与 对应的行Batch No=1
,即1
。并且给定范围 中的行 (=1) 和列 (=6) 编号$C$6:$H$8
,
VLOOKUP
返回 中存储的值H6
,即7
。
答案2
尝试index
使用与 Batch# 和 Size 文本匹配的函数:
=INDEX(C6:H8,MATCH($E12,$C$6:$C$8,0),MATCH("Size "&$F12,$C$5:$H$5,0))