当列依赖于另一个单元格(行/列组合)时查找特定的行值

当列依赖于另一个单元格(行/列组合)时查找特定的行值

我有一张 Excel 工作表,上面有一个非常大且填充很少的矩阵。第一列描述一个项目,后面的列描述该项目是否属于某个组。每个项目只能属于一个组。但是,整个工作表并没有用一列来表示每个项目的组,而是分散到多个虚拟列(每个组一个),其中 x 表示该项目是否属于该组。

我拥有的:

物品 Group_1 组_2 Group_3
1 X
2 X
3 X
4 X
5 X

我想要的是:

物品 团体 Group_1 组_2 Group_3
1 Group_1 X
2 Group_1 X
3 组_2 X
4 Group_3 X
5 Group_3 X

此外,对于此示例,我将组命名为“group_1”、“group_2”等,但在实际数据框中,它们的名称可以是任何名称。解决这个问题的最佳方法是什么?据我所知,xlookup/vlookup/hlookup 依赖于两个预定的单元格范围,然后进行比较。但在这里,一切都取决于“x”指示的行/列组合。

答案1

INDEX/MATCH虽然此查找方法是水平查找而不是通常的垂直查找,但这仍然是查找方法的一个经典问题。

使用:

=INDEX( $C$1:$E$1, 1, MATCH("x",C2:E2,0) )

MATCH()查看整个行而不是整个列,因此其结果是列参数INDEX()而不是通常的行参数。

然而,XLOOKUP()也完全能够做到这一点:

=XLOOKUP( "x", C2:E2, $C$1:$E$1 )

并提供了一些有趣的内置选项,其中之一就是如果找不到查找值该怎么办。

答案2

请检查 Power Query 是否有帮助。

首先,您可以选择并右键单击数据>从表/范围获取数据。

选择要删除的空白列。

在此处输入图片描述

选择 Group_1 > 转到添加列选项卡 > 常规组 > 重复列。

在此处输入图片描述

请对 Group_2 和 Group_3 重复此操作。

然后按 Ctrl 键选择 Group_1、Group_2 和 Group_3,转到“Transform”选项卡 >“Any Column”组 >“Unpivot Column”

在此处输入图片描述

在此处输入图片描述

删除值列,然后单击关闭并加载,将表格加载到工作表中。

在此处输入图片描述

相关内容