我有一个函数,它将从 Sheet1 中的 B 列中获取一个值,然后在 Sheet2 中的 D 列中搜索匹配项,如果找到则返回该值。
=INDEX(Sheet2!$D:$D,MATCH(B2,Sheet2!$D:$D,0))
但是,我实际上使用该函数在 Sheet2(DZ)的几列中搜索匹配项,而不仅仅是 D 列。
提前感谢你的帮助!
答案1
这有点过头了。连接索引匹配应该可以工作。
=IFERROR(INDEX(Sheet2!$D:$D,MATCH($B2,Sheet2!$D:$D,0)),IFERROR(INDEX(Sheet2!$E:$E,MATCH($B2,Sheet2!$E:$E,0)),IFERROR(INDEX(Sheet2!$F:$F,MATCH($B2,Sheet2!$F:$F,0)),IFERROR(INDEX(Sheet2!$G:$G,MATCH($B2,Sheet2!$G:$G,0)),IFERROR(INDEX(Sheet2!$H:$H,MATCH($B2,Sheet2!$H:$H,0)),IFERROR(INDEX(Sheet2!$I:$I,MATCH($B2,Sheet2!$I:$I,0)),IFERROR(INDEX(Sheet2!$J:$J,MATCH($B2,Sheet2!$J:$J,0)),IFERROR(INDEX(Sheet2!$K:$K,MATCH($B2,Sheet2!$K:$K,0)),IFERROR(INDEX(Sheet2!$L:$L,MATCH($B2,Sheet2!$L:$L,0)),IFERROR(INDEX(Sheet2!$M:$M,MATCH($B2,Sheet2!$M:$M,0)),IFERROR(INDEX(Sheet2!$N:$N,MATCH($B2,Sheet2!$N:$N,0)),IFERROR(INDEX(Sheet2!$O:$O,MATCH($B2,Sheet2!$O:$O,0)),IFERROR(INDEX(Sheet2!$P:$P,MATCH($B2,Sheet2!$P:$P,0)),IFERROR(INDEX(Sheet2!$Q:$Q,MATCH($B2,Sheet2!$Q:$Q,0)),IFERROR(INDEX(Sheet2!$R:$R,MATCH($B2,Sheet2!$R:$R,0)),IFERROR(INDEX(Sheet2!$S:$S,MATCH($B2,Sheet2!$S:$S,0)),IFERROR(INDEX(Sheet2!$T:$T,MATCH($B2,Sheet2!$T:$T,0)),IFERROR(INDEX(Sheet2!$U:$U,MATCH($B2,Sheet2!$U:$U,0)),IFERROR(INDEX(Sheet2!$V:$V,MATCH($B2,Sheet2!$V:$V,0)),IFERROR(INDEX(Sheet2!$W:$W,MATCH($B2,Sheet2!$W:$W,0)),IFERROR(INDEX(Sheet2!$X:$X,MATCH($B2,Sheet2!$X:$X,0)),IFERROR(INDEX(Sheet2!$Y:$Y,MATCH($B2,Sheet2!$Y:$Y,0)),IFERROR(INDEX(Sheet2!$Z:$Z,MATCH($B2,Sheet2!$Z:$Z,0)))))))))))))))))))))))))
想法:如果 D 列搜索失败(产生错误),则查看 E:E。如果 E 列匹配失败,则查看 F 列... 直到 Z。
希望能帮助到你。 ( :
答案2
您可以使用数组(CSE)公式,结合索引、匹配、MMULT 和转置,通过跨多列匹配来查找查找值。
表 1 中 E27 中的公式:
{=INDEX(Sheet2!$D$21:$D$24,MATCH(1,MMULT(--(Sheet2!$E$21:$G$24=D27),TRANSPOSE(COLUMN(Sheet2!$E$21:$G$24)^0)),0))}
注意:完成公式Ctrl+Shift+Enter并填充。
怎么运行的:
--(Sheet2!$E$21:$G$24=D27)
- 生成 TRUE/FALSE 并将
--
它们符号转换为1
&0
。 MMULT
用于执行矩阵乘法,结果MATCH
作为数组进入函数,1
作为查找值。
TRANSPOSE(COLUMN(Sheet2!$E$21:$G$24)^0)
- 其中
COLUMN
用于创建一个 3 列 1 行的数字数组,并将TRANSPOSE
该数组转换为 1 列 3 行。 - 零的幂将数组中的所有数字转换为 1。
MATCH
返回第一个匹配的位置,该位置对应于第一个符合条件的匹配行的行。Index
返回Area
,Alex
属于等等。
根据需要调整公式中的单元格引用。