查找Excel表格行列交叉处的值,三个公式套路拿走不谢

Excel学习世界 2023-10-01 14:26:36

今天的查找案例其实不复杂,根据行列线索,查找出交叉点的值,类似的案例教过很多次了,但是既然有人提问,还是再讲解一下,一共 3 个公式,从小众到常见。

案例:

根据下图 1 中右边的数据表的行列标题,从左侧数据表中查找出对应的值。

效果如下图 2 所示。

解决方案 1:

如果是 365 版本,那么完全可以尝试这个函数。

1. 在 J2 单元格中输入以下公式 --> 向右向下拖动,复制公式:

=FILTER(FILTER($B$2:$G$13,$A$2:$A$13=$I2),$B$1:$G$1=J$1)

公式释义:

这里用了 2 次 FILTER 函数,我们照例从内向外解析;

FILTER($B$2:$G$13,$A$2:$A$13=$I2):

filter 是个 365 函数,作用是基于定义的条件筛选一系列数据;

语法为 FILTER(要筛选的数组或区域,其高度或宽度与数组相同的布尔值数组,[为空时返回的值]);

$B$2:$G$13:要从中取值的区域

$A$2:$A$13=$I2:取值条件为 A 列的姓名等于 I2 单元格的姓名;

FILTER(...,$B$1:$G$1=J$1):

上述公式会提取出姓名为“詹姆斯下士”的一整行数值,该数组为此处的第一个参数;

$B$1:$G$1=J$1:从上述区域中提取出月份等于 J1 单元格的数值,即找出纵坐标也符合条件的单元格

* 请注意参数的绝对和相对引用。

解决方案 2:

如果还没升级到 365,那也没关系,这个神仙函数也很好使。

1. 将公式修改如下:

=SUMPRODUCT($B$2:$G$13*($A$2:$A$13=$I2)*($B$1:$G$1=J$1))

公式释义:

SUMPRODUCT 函数的作用是返回相应范围或数组的个数之和;

参数为 SUMPRODUCT (array1,[array2],[array3], ...)

array1:相乘并求和的第一个数组参数;

[array2],[array3],...:要要进行相乘并求和的其他参数;

参数中相乘的三个区域分别为:

$B$2:$G$13:要查找的所有数值区域;

$A$2:$A$13=$I2:符合查找条件的行;

$B$1:$G$1=J$1:符合查找条件的列

上述三个区域相乘后,仅满足所有条件的,乘积才不会为 0,求和后就是纵横交叉处的单元格值

解决方案 3:

1. 还可以使用以下传统公式:

=INDEX($B$2:$G$13,MATCH($I2,$A$2:$A$13,0),MATCH(J$1,$B$1:$G$1,0))

公式释义:

index 函数的语法为 INDEX(要查找的区域, 区域内的行号, [区域内的列号]);

$B$2:$G$13:要查找的区域;

MATCH($I2,$A$2:$A$13,0):

在区域 $A$2:$A$13 中查找 $I2,并返回代表其所在位置的编号;

0 表示精确查找;

返回的值为行号;

MATCH(J$1,$B$1:$G$1,0):用同样的公式匹配出列号

0 阅读:4

Excel学习世界

简介:Excel 学习交流