扒出一个Excel神技巧:按指定的条件重复数据!

栏目:教育活动  时间:2023-07-31
手机版

  点击蓝字【秋叶 Excel】

  发送【礼包】

  免费领办公神器、Office 模板和免商字体!

  本文作者:赵骄阳

  本文编辑:竺兰

  Hi,我是偏爱函数公式,爱用 Excel 图表管理仓库的大叔 Mr 赵~

  在日常工作中,我们经常会碰到按指定的条件重复数据的问题,比如按指定数量重复标签的个数,根据箱规拆分数量等等。

  昨天的文章,我们介绍过它的传统函数做法:

  今天,我们就来看看在 Office365 中,它的各种神奇做法。本文重在扩展思路,大家跟着我的步伐,往下看看吧。

  

  

  重复单个标签

  如下图,按 C3 单元格的打印份数重复 B3 单元格的标签名称,效果如 E 列:

  

  对于单个标签,我们可以使用 Row 函数下拉扩展,从而进行判断。

  

  如果你是 Office365 版本,扩展只需要一个EXPAND函数。

  EXPAND 函数的作用,是将原来的区域按指定的行数和列数进行扩充。

  它有 4 个参数:

  =EXPAND(区域,扩充的总行数,扩充的总列数,原区域以外显示的值)

  在 E3 单元格输入公式:

  

  公式解析:

  第 1 参数是 B3 单元格,表示待扩充的区域; 第 2 参数获取 C3 单元格的数值,表示扩充的总行数,是 6 行, 第 3 参数,省略未写,默认扩充为 1 列; 第 4 参数,获取 B3 单元格的文本,用"A"填充原区域以外的位置,从而达到重复的效果。

  如果想为这组结果添加标题,可以用VSTACK函数拼接,这个函数的作用是把各个参数纵向堆叠在一起。

  VSTACK 函数语法为:

  =VSTACK(参数 1,参数 2,参数 3……)

  在 E2 单元格写入公式:

  

  

  SEQUENCE

  上面使用的新函数,Expand 函数和 Vstack 函数,目前 WPS 还没更新。

  不过,使用 WPS 的小伙伴 (更新到新版本) ,可以用SEQUENCE函数,同样能达到填充的目的:

  PS : 由于 WPS 目前还没有更新动态数组,所以使用 WPS 还需要使用数组三键哦~ ,Excel2021 及以上版本直接回车就行。

  

  下面就来看看操作:

  首先用 SEQUENCE 函数根据 C3 单元格的数值生成一组数字序列。

  =SEQUENCE(行数,[列数],[开始数],[增量])

  可选参数,不输入默认为 1。

  也就是该函数公式生成为 6 行 1 列,开始值为 1,增值为 1 的序列。

  

  然后以这组序列作为 IF 函数的判断条件,返回 B3 单元格的内容。

  在 E3 单元格输入公式:

  PS : 非 0 的值都为真(true),所以 if 函数判断的时候,SEQUENCE 函数生成的序列都为 true。

  

  但是在实际操作指定重复次数的时候,不会只对单个标签进行重复,一般是多个标签一起。

  这应该怎么做呢 ?

  

  

  重复多个标签

  如下图,根据 C 列的打印份数,重复 B 列多个标签名称,效果如 E 列:

  

  从上图 E 列的效果可以看出,我们需要用 VSTACK 函数对每个标签名称依次循环拼接。

  这里就需要一个REDUCE函数,

  它有 3 个参数,语法为:

  =REDUCE(初始值,遍历的数组,LAMBDA(x,y,计算表达式))

  第 1 个参数是初始累加值; 第 2 个参数是循环遍历的区域; 第 3 个参数是 LAMBDA 函数运算的表达式,它有两个参数,x 指向初始累加值,y 指向第 2 参数即被遍历的区域。

  在 E2 单元格输入公式:

  

  公式解析:

  REDUCE 函数

  第 1 个参数为 B2 单元格,是初始值;

  第 2 个参数为 B3:B5 单元格区域,需要遍历的数据;

  第 3 个参数是一个 LAMBDA 函数,它有两个变量 x 和 y,用来计算表达式:

  其中:

  x 作为累加值,指向 REDUCE 的第 1 参数为 B2,也就是「标签名称」。

  y 指向 REDUCE 的第 2 参数 B3:B5 区域。

  LAMBDA 遍历 B3:B5 每一个单元格,第 1 次运行表达式:

  返回结果如下图 E 列:

  

  然后将上面的结果 E2:E5 作为 LAMBDA 新的第 1 参数,B4 为第 2 参数,继续第 2 次执行 LAMDA 表达式:

  结果如下图 G 列:

  

  依次类推,直至遍历完 B3:B5 的所有单元格,将 LAMBDA 第 1 参数不断拼接,结果如下图 I 列:

  

  REDUCE 函数虽然是一个比较难的函数,但是,由于有了它的存在,给我们提供了更加灵活的处理方案。

  

  总结一下

  今天我们通过指定的次数重复数据的案例,切实感受到了 365 版新函数的神奇用法!重在扩展大家思路~

  本文,我们主要涉及了三个比较常用的新函数。 (目前它们还没在 WPS 中出现。)

  ? EXPAND函数可以按指定的行数和列数自动扩充区域;

  ? VSTACK函数将对多个区域自由垂直拼接,比如添加标题;

  ? REDUCE函数通过遍历,循环调用 LAMBDA 函数表达式生成最终结果,比如对多个数据标签完成数量的复制。

  Excel 里的函数有 400 多个,但我们常用的其实只有几十个。

  

  如果你想学会这些常用函数,和更多的 Excel 技巧知识。

  正好,我们家的《秋叶 Excel 3 天集训营》专为职场人准备,全部基于职场真实表格案例设计,还有很多超实用 Excel 技巧教学。

  每天学习大概30 分钟,从日常的功能出发,全程演示,一课一练,夯实进阶每一步。

  秋叶 Excel 3 天集训营

  原价99

  现在报名

  还送【35 个常用函数说明】

  好了,今天就说到这里结束啦~

  如果本篇文章对你有帮助或有所启发,欢迎「点赞」、「评论」和「转发」哦,你们的支持是我分享的动力~

  

  

  发送【福利】

  免费领 Excel 插件&工具,看精华文章!

  你最好看

  动动小手

  分享给朋友~

上一篇:《三分野》富家女与“校园男神”的励志故事
下一篇:乡村公职人员扩编,或开设“三不限职位”,考试合格即可得铁饭碗

最近更新教育活动