乐于分享
好东西不私藏

EXCEL篇-合并单元格查找,一招让你告别加班!不添辅助列、不改表结构

EXCEL篇-合并单元格查找,一招让你告别加班!不添辅助列、不改表结构

日常整理表格时,为了版面整洁,我们常会用合并单元格展示分类数据。

这样一来,后续查找数据时就容易遇到麻烦,那么,如何在既不增加辅助列、也不改变原表结构的前提下,轻松实现合并单元格的数据查找呢?

一、举例-(返回结果是合并单元格的情况)

左侧 A-B 列为原始数据表:A 列分组做了合并单元格,B 列存储对应人员姓名;

右侧 H列为姓名,根据姓名查找其所属分组,返回结果为合并单元格对应的分组名称

1、公式思路:
XLOOKUP+(SACN+LAMBDA)函数组合

SCAN+LAMBDA 组合自上而下遍历区域,形成下图结果;

合并单元格转变成普通区域,然后再搭配查找函数XLOOKUP,实现精确查找。

=SCAN(, A2:A10, LAMBDA(x, y, IF(y="", x, y)))
2、公式步骤:
  • A2:A10:要处理的单元格区域,即分组列(包含合并单元格)。

  • LAMBDA(x, y, IF(y="", x, y)):自定义运算规则。

    • x(累加器):存储上一个非空的分组名称。

    • y(当前值):当前正在处理的单元格内容。

    • 逻辑:如果当前单元格 y 是空的,就返回 x(即上一个分组名);否则返回 y 本身。

  • SCAN 函数:遍历数组的每一个元素,按 LAMBDA 规则计算,并输出每一步的结果。

3. 逐步推算过程

步骤
当前单元格y
 累加器x
(上一步结果)
判断y=""
返回结果
(当前输出)
A2(销售一组)
初始为空(省略)
销售一组
A3(空)
销售一组
销售一组
A4(空)
销售一组
销售一组
A5(销售二组)
销售一组
否(更新为新值)
销售二组

4.函数语法:[]内为可选填参数,剩余参数为必选项

1.SCAN([初始值], 数组, LAMBDA(累加器, 当前值, 计算逻辑))

用:对数组逐元素扫描运算,每一步都保留结果,最终返回一个与原始数组同维度的结果数组

2.LAMBDA(参数1,[ 参数2], ..., 计算表达式)

LAMBDA 本身不能单独使用,必须被其他函数调用(如 SCANMAPREDUCE)。

二、举例-(查找区域是合并单元格的情况)

左侧 L-M 列为原始数据表;

右侧 O列为分组,做了合并单元格,如何O列查找对应提成系数

合并单元格仅首行存有文本,其余空白,用普通 VLOOKUP/XLOOKUP 匹配时直接返回空值,通过增加IF判断,如果查找区域为空,则自动沿用上一行的值,如果不为空,则使用常规查找函数查找。

合并单元格的详细内容可参考这篇文章EXCEL篇-合并单元格求和!一个公式搞定!