反向匹配Excel合并单元格,将重复单元格拆分成列表,竟然都靠它

Excel学习世界 2024-08-07 21:07:24

按关键字查找,在工作中是很常见的诉求,随着 365 函数的出现,公式越来越简化。但是要说到查找届能集大成者,这个函数不得不提。

案例:

根据下图 1 中 E 列的姓名,从左侧的数据表中查找出对应的部门,效果如下图 2 所示。

解决方案:

1. 在 F2 单元格中输入以下公式 --> 下拉复制公式:

=LOOKUP("々",INDIRECT("a$1:A"&MATCH(E2,$B$1:$B$14,0)))

* 公式中的“々”也可以换成“座”,通常用来表示编码最大的汉字。

为了更好地让大家理解公式,我会从内到外一边解析一边演示结果给大家看。

公式释义:

MATCH(E2,$B$1:$B$14,0):在区域 $B$1:$B$14 中精确查找 E2 单元格的值,返回查找结果在整个序列中的排序序号;

INDIRECT("a$1:A"&...):

将 "a$1:A" 与上述匹配结果用 & 符号连接起来,结果为 A$1:A8;

用 indirect 函数提取出区域中的值;

LOOKUP("々",...):

在上述结果中从后向前查找“々”;

lookup 的作用是从单行或单列或数组中查找符合条件的值,如果找不到需要查询的值,就返回比查询值小的最接近的一个;

由于 lookup 要求第二个参数按升序排序,所以不管排没排,它都认为已经排好了,因此默认最后一个是最大值;

在区域中查找“々”,如果找不到,且最后一个字符的字符集编码小于“々”,LOOKUP 函数就默认将最后一个字符当成区域中所有字符中最大的一个,并且返回该字符。

解析完毕后,再来个彩蛋。

利用 lookup 的这个查找特性,就可以连续填充合并单元格的值。

2. 在 D2 单元格中输入以下公式 --> 下拉复制公式:

=LOOKUP("々",$A$2:A2) 或

=LOOKUP("座",$A$2:A2)

公式释义:

在区域 $A$2:A2 中自下往上查找“々”或“座”,如果找不到则返回比它小的最大值,即区域内最后一个单元格的值;

参数中的区域需要第一个单元格绝对引用,而第二个单元格相对引用

0 阅读:3

Excel学习世界

简介:Excel 学习交流