我正在处理一个相对较大的数据集,该数据集已从 MIKE+ 中提取并存入 Excel 中。真正的数据集是关于管道的,我需要返回所有材质相同的管道。
但是,列的显示顺序可能会发生变化,表格中空白列的随机出现也是如此。
因此,我需要一个函数,可以根据其自身列的标题在原始数据中搜索相关列,然后从该列中提取所有单元格,这些单元格出现在配置列表中。
我在下面制作了简化的表格。
原始数据
A | B | C | |
---|---|---|---|
1 | 身份证 | 数量 | 放置 |
2 | 牛 | 1 | a |
3 | 马 | 2 | b |
4 | 狗 | 3 | c |
5 | 鱼 | 4 | d |
但它也可能是这样的
A | B | C | |
---|---|---|---|
1 | 数量 | 身份证 | 放置 |
2 | 3 | 狗 | c |
3 | 4 | 鱼 | d |
4 | 1 | 牛 | a |
5 | 2 | 马 | b |
ID配置
D | |
---|---|
1 | 放置 |
2 | b |
3 | d |
我想要的 A 列结果
A | |
---|---|
1 | ID |
2 | 马 |
3 | 鱼 |
我已经成功编写了一个ID函数,它根据配置列表找到正确的ID,但是这个函数只有在我指定正确的列时才起作用:
=FILTER(A$1:A$18; ISNUMBER(MATCH(C$1:C$18; D$2:D$9; 0)))
移动,我有一个用于“数字”和“位置”列的函数,它可以根据标题找到正确的单元格。然而,这并没有考虑配置列表,而是考虑 ID 值,对于这两列来说,这正是它应该做的:
=IFERROR(
XLOOKUP(
AH2#;
INDEX(AC1:AE7; 0; MATCH($AH$1; AC1:AE1; 0));
INDEX(AC1:AE7; 0; MATCH(AK$1; AC1:AE1; 0))
);
""
)
我无法将这两个函数结合起来,因此我的第一列(ID 列)可以从原始表中具有相同标题的列生成,并且返回的单元格也是那些也出现在配置上的单元格列表。
该函数不能是下拉函数、VBA 函数或需要复制+粘贴步骤。
希望你能帮助我修复第一列的函数,我可以在此基础上构建其他列中的所有函数。