Excel情报局

用案例讲Excel

探索挖掘分享Excel实用技能
SuperExcelMan
用1%的Excel基础搞定99%的职场难题

做一个超级实用的Excel公众号

Excel是门手艺玩转需要勇气
数万表格爱好者聚集地


大家好,今天收到一位公众号关注者的咨询:

一列乱序名称,如何分组(对每组相同名称)添加顺序序号不想手动添加,太浪费时间了

看来国庆假期刚过半,有的小伙伴就已经上岗开始工作了。

我们依旧用简练的文字与图片还原真实的办公场景

A列是一列水果名称,名称顺序是乱序且存在重复的。

现在我们想要运用函数公式的方法,将各组相同名称填充1~n的顺序序号。




这位小伙伴还有一个要求,就是想使用动态数组溢出函数,一个公式无需下拉填充公式返回所有结果。

本来一个COUNTIF函数动态区域条件计数,获取分组序号的经典技巧就能解决的问题,又增加了一些难度。但是只要加上map+lambda,问题就会迎刃而解了。

下面我们演示具体的公式书写流程

第一步 辅助理解步骤

COUNTIF

分组填充序号

首先我们使用的是COUNTIF条件计数函数:

=COUNTIF(A$2:A2,A2)

A$2:A2:
这是一个随着公式下拉填充,动态逐渐扩展的范围。

COUNTIF函数统计从固定的A2单元格(锁行不锁列)到当前不断变化的A2~A8单元格动态范围内,相应的A2~A8各单元格值出现的次数(个数)。

这样我们实际就得到了每组相同水果名称的1~n的填充序号。

但此时我们仍需要借助下拉填充公式的方式获取结果。




第二步 辅助理解步骤
TEXT
格式设置

我们用到的是绝对经典的TEXT文本格式代码函数:
=TEXT(COUNTIF(A$2:A2,A2),”-00″)

TEXT(…, “-00”):
00:将数字格式化为两位数,不足两位的前面补零。
-00:添加前缀连接字符”-“。

比如:
1返回-01
12返回-12

这样我们就对每组相同水果名称的1~n的填充序号设置为了固定2位数字的格式,不足两位的前面补零。

但此时我们仍需要借助下拉填充公式的方式获取结果。



给countif套上map+lambda:一列名称分组添加序号更丝滑
第三步

LAMBDA

自定义参数


我们使用到的是强大的LAMBDA自定义函数公式:

=LAMBDA(X,TEXT(COUNTIF(A$2:X,X),”-00″))

LAMBDA(X, …):

定义匿名函数,其中X代表当前正在处理的单元格。

即将COUNTIF(A$2:A2,A2)部分:
动态扩展的条件区域A$2:A2中的结束单元格A2设置为了参数X,当前需要统计个数的条件单元格A2也设置为了参数X。

TEXT(COUNTIF(A$2:X,X),”-00″)

统计从固定的A2到当前单元格X中,值X出现的次数(个数)。
这是一个动态范围:A2:X会随着处理,区域范围逐渐扩展。


第四步
MAP
数组映射

在Excel与WPS表格中,MAP函数属于数组处理函数,同时也是Lambda的辅助函数。它主要用于对一个或多个数组中的每个元素执行指定的计算,并返回一个新的数组。

MAP必须与Lambda函数配合使用,Lambda定义了具体的计算逻辑。我们可以通过Lambda自定义任意计算规则,实现灵活的数据处理。不用手动填充公式,非常高效的处理大量的数据。


我们继续完善公式,嵌套MAP函数:
=MAP(A2:A8,LAMBDA(X,TEXT(COUNTIF(A$2:X,X),”-00″)))

第一参数:
A2:A8
这是依次要处理的数据范围(A2到A8单元格)

MAP(A2:A8, LAMBDA(X, …))
MAP函数将A2:A8范围内的每个单元格应用LAMBDA自定义函数的参数X,也就是动态扩展的条件区域的结束单元格。这样就借助MAP这个发动机驱动了X(从A2~A8),实现了一个自动的动态扩展,即摆脱了下拉填充公式的困扰。



第五步
&
连接原始名称

用A2:A8区域原始名称依次连接上一步返回的组内序号:
=A2:A8&MAP(A2:A8,LAMBDA(X,TEXT(COUNTIF(A$2:X,X),”-00″)))

这样我们就用到了一个数组溢出公式,无需手动下拉填充公式,所有结果自动溢出。


学习Excel/如果你没有天赋/那就一直重复/当你快到本能反应的时候/你的重复就是别人眼中的天赋/冲破捆绑/展翅翱翔/回顾关键内容/善用图片表达/学会建立联系/拓展深度广度/浓缩关键概念/应用到行动中/善于归纳总结/尝试进行分享

批量对Excel单元格部分文字进行内容替换 格式更改

合并工作表,用两个函数就搞定啦

比vlookup还强大的动态随机查询

根据起始序号与终止序号写入内容

regexp正则提取:款式&尺码多组提取

一个关于人口普查Excel户籍整理的问题

regexp+vlookup,根据简称查询全称

regexp+countif+filter 根据全称查找简称

excel1秒批处理1000条混乱时间数据

Regexp这个大哥级函数“人狠话不多”