|
一列乱序名称,如何分组(对每组相同名称)添加顺序序号?不想手动添加,太浪费时间了!
看来国庆假期刚过半,有的小伙伴就已经上岗开始工作了。
我们依旧用简练的文字与图片还原真实的办公场景:
A列是一列水果名称,名称顺序是乱序且存在重复的。
现在我们想要运用函数公式的方法,将各组相同名称填充1~n的顺序序号。
这位小伙伴还有一个要求,就是想使用动态数组溢出函数,一个公式无需下拉填充公式返回所有结果。
本来一个COUNTIF函数动态区域条件计数,获取分组序号的经典技巧就能解决的问题,又增加了一些难度。但是只要加上map+lambda,问题就会迎刃而解了。
COUNTIF
=COUNTIF(A$2:A2,A2)
COUNTIF函数统计从固定的A2单元格(锁行不锁列)到当前不断变化的A2~A8单元格动态范围内,相应的A2~A8各单元格值出现的次数(个数)。
这样我们实际就得到了每组相同水果名称的1~n的填充序号。
但此时我们仍需要借助下拉填充公式的方式获取结果。
=TEXT(COUNTIF(A$2:A2,A2),”-00″)
这样我们就对每组相同水果名称的1~n的填充序号设置为了固定2位数字的格式,不足两位的前面补零。
但此时我们仍需要借助下拉填充公式的方式获取结果。
LAMBDA
自定义参数
=LAMBDA(X,TEXT(COUNTIF(A$2:X,X),”-00″))
LAMBDA(X, …):
定义匿名函数,其中X代表当前正在处理的单元格。
动态扩展的条件区域A$2:A2中的结束单元格A2设置为了参数X,当前需要统计个数的条件单元格A2也设置为了参数X。
TEXT(COUNTIF(A$2:X,X),”-00″)
统计从固定的A2到当前单元格X中,值X出现的次数(个数)。
这是一个动态范围:A2:X会随着处理,区域范围逐渐扩展。
在Excel与WPS表格中,MAP函数属于数组处理函数,同时也是Lambda的辅助函数。它主要用于对一个或多个数组中的每个元素执行指定的计算,并返回一个新的数组。
MAP必须与Lambda函数配合使用,Lambda定义了具体的计算逻辑。我们可以通过Lambda自定义任意计算规则,实现灵活的数据处理。不用手动填充公式,非常高效的处理大量的数据。
=MAP(A2:A8,LAMBDA(X,TEXT(COUNTIF(A$2:X,X),”-00″)))
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这个大哥级函数“人狠话不多”←
|