如何在 IF 语句中组合 VLOOKUP,其中 VLOOKUP 函数的列索引是从文本推断出的数字?

如何在 IF 语句中组合 VLOOKUP,其中 VLOOKUP 函数的列索引是从文本推断出的数字?

我在 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$8VLOOKUP返回 中存储的值H6,即7

答案2

尝试index使用与 Batch# 和 Size 文本匹配的函数:

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

相关内容