首页 > 解决方案 > 在一个范围(多列或多行中的任何一个)中查找一个值并返回该行最左边的列中的值

问题描述

寻找类似于典型的索引匹配公式的东西,它可以向右看,向左返回值,但要查看一个范围内的所有列。以下面的有效公式为例。

(Excel 2021。)

在 D 列中查找 A1 的值,并从 C 列返回值。

=INDEX($C$1:$C$10,MATCH(A1,$D$1:$D$10,0))

在我的理想世界中,我可以保留 $D$1 并将 $D$ 10更改为 $F$10,以便它搜索所有列 D/E/F,并且仍然返回 C,如下所示。但是,这在我们的现实世界中行不通,请问还有其他想法吗?谢谢!

=INDEX($C$1:$C$10,MATCH(A1,$D$1:$F$10,0))

更新*澄清有字母和数字的混合。此外,该表将有大约 50k 行,因此希望尽可能简单。

此外,C 列肯定都是唯一的,DF 应该是唯一的值,但有可能出现错误,并且可能存在一些重复项。

标签: excelindex-match

解决方案


你需要MMUL()INDEX(). 如果你有,试试下面的公式Excel-365

=FILTER(C1:C10,MMULT(--(D1:F10=A1),SEQUENCE(COLUMNS(D1:F1))))

对于旧版本尝试

=INDEX($C$1:$C$10,LARGE(MMULT(--($D$1:$F$10=A1),TRANSPOSE({1,1,1}))*ROW($C$1:$C$10),1))

在此处输入图像描述


推荐阅读