Excel 索引/匹配4列
我有一个Excel文件,有两张表——一张表包含我的项目、价格、代码等,另一张表用于与竞争对手交叉匹配 我在下面包括了一个Excel文件和图像 我希望能够在手动输入任何竞争对手的代码时自动生成代码。我可以做Excel 索引/匹配4列,excel,excel-formula,Excel,Excel Formula,我有一个Excel文件,有两张表——一张表包含我的项目、价格、代码等,另一张表用于与竞争对手交叉匹配 我在下面包括了一个Excel文件和图像 我希望能够在手动输入任何竞争对手的代码时自动生成代码。我可以做索引/匹配,但我只能匹配一列(我假设它们都在一张表中,这样更容易)。这是我的公式: =索引(C:C,匹配(K2,E:E,0) 因此,这只是在E:E中查找,当我尝试输入另一列,例如C:C或D:D时,它返回一个错误 我试图将匹配作为C:G执行,但它立即给出了一个错误 match之所以给您错误,是因为
索引/匹配
,但我只能匹配一列(我假设它们都在一张表中,这样更容易)。这是我的公式:
=索引(C:C,匹配(K2,E:E,0)
因此,这只是在E:E
中查找,当我尝试输入另一列,例如C:C
或D:D
时,它返回一个错误
我试图将匹配
作为C:G
执行,但它立即给出了一个错误
match之所以给您错误,是因为它正在查找一个数组,而您将其放入了多个列中 肯定有一种更优雅的方式来做这件事,但这是我想出的第一个
=IFERROR(INDEX(B:B,MATCH(K2,C:C,0)),IFERROR(INDEX(B:B,MATCH(K2,D:D,0)),IFERROR(INDEX(B:B,MATCH(K2,E:E,0)),IFERROR(INDEX(B:B,MATCH(K2,F:F,0)),IFERROR(INDEX(B:B,MATCH(K2,G:G,0)),"")))))
match之所以给您错误是因为它正在查找数组,而您将其放入了多个列 肯定有一种更优雅的方式来做这件事,但这是我想出的第一个
=IFERROR(INDEX(B:B,MATCH(K2,C:C,0)),IFERROR(INDEX(B:B,MATCH(K2,D:D,0)),IFERROR(INDEX(B:B,MATCH(K2,E:E,0)),IFERROR(INDEX(B:B,MATCH(K2,F:F,0)),IFERROR(INDEX(B:B,MATCH(K2,G:G,0)),"")))))
索引/匹配组合
请尝试以下公式:
{=指数($B$2:$B$5,匹配(1,(K2=$C$2:$C$5)+(K2=$D$2:$D$5)+(K2=$E$2:$E$5)+(K2=$F$2:$F$5)+(K2=$G$2:$G$5),0))}
说明:将公式{不带花括号}粘贴到公式栏,并在单元格仍处于活动状态时按CTRL+SHIFT+ENTER。这将创建一个。因此,花括号。请注意,手动输入花括号无效
说明:
- INDEX函数返回表或范围内的值或对值的引用
- MATCH函数在单元格区域中搜索指定项,然后返回该项在该区域中的相对位置
- 索引(引用,行数,[列数],[区域数])
- 匹配(查找值、查找数组、[匹配类型])
INDEX
函数根据row_num
参数从referenceMy code
列(B1:B5)返回一个值,该参数用作指向右侧单元格的索引号,我们将用MATCH
函数替换row_num
另一方面,MATCH
函数返回competitor
n
列中值的相对位置,该值与competitor code
列的各个单元格中的值相匹配
为了使它能够处理多个查找范围,我们将创建布尔值数组(真/假,也称逻辑值)通过比较competitor code
列中各个单元格的值与单个competitor
n
列中的值。现在,我们通过执行不改变其隐含值的数学运算将这些布尔值转换为数值(即TRUE=1,FALSE=0)。我们将直接添加这些值以简化操作。生成的数组有四个索引,其中有两个可能的值:1或0。由于匹配的查找数组中的每个项都是唯一的,那么只有一个TRUE
或1
。其余的是FALSE
或0
。因此,根据这些知识,我们将使用它作为查找值
让我们分析一下公式:
=索引(B2:B5,匹配(1,(K2=C2:C5)+(K2=D2:D5)+(K2=E2:E5)+(K2=F2:F5)+(K2=G2:G5),0))
我的代码2
=
索引({“我的代码1”;“我的代码2”;“我的代码3”;“我的代码4”},匹配)
我的代码2
=
索引({“我的代码1”;“我的代码2”;“我的代码3”;“我的代码4”},(2))
2
=匹配(1,(K2=C2:C5)+(K2=D2:D5)+(K2=E2:E5)+(K2=F2:F5)+(K2=G2:G5),0)
或
2
=
匹配(1,0;1;0;0},0))
我希望这个答案是有帮助的
参考资料和链接:
索引/匹配组合
请尝试以下公式:
{=指数($B$2:$B$5,匹配(1,(K2=$C$2:$C$5)+(K2=$D$2:$D$5)+(K2=$E$2:$E$5)+(K2=$F$2:$F$5)+(K2=$G$2:$G$5),0))}
说明:将公式{不带花括号}粘贴到公式栏,并在单元格仍处于活动状态时按CTRL+SHIFT+ENTER。这将创建一个。因此,花括号。请注意,手动输入花括号将不起作用
说明:
- INDEX函数返回表或范围内的值或对值的引用
- MATCH函数在单元格区域中搜索指定项,然后返回该项在该区域中的相对位置
语法:
索引函数有两种形式:数组形式和引用形式。在这种情况下,我们将使用参考表格
- 索引(引用,行数,[列数],[区域数])
- 匹配(查找值、查找数组、[匹配类型])
说明:
为了简化,我们将使用以下表格:
索引(引用,匹配(查找值,查找数组,[匹配类型])
INDEX
函数根据row_num
参数从referenceMy code
列(B1:B5)返回一个值,该参数用作指向右侧单元格的索引号,我们将用MATCH
函数替换row_num
匹配
功能,
=MATCH(1,
{0;0;0;0}+
{0;0;0;0}+
{0;0;0;0}+
{0;0;0;0}+
{0;1;0;0},0))
=========
{0;1;0;0},0))