你好,我是刘卓。欢迎来到我的公号,excel函数解析。工作中有时会遇到按指定次数重复内容的问题,今天就来分享下如何用365新函数解决这个问题。 案例分享 下图左表是数据源,要求根据B列的次数重复A列的部门,结果如E列所示。 ![]() 1.常规输出结果 ![]() 下面说下这个公式的运行过程: reduce的初始值是A2的部门,要循环的数组是A3:A6的部门。 第一次循环的是"财务部",先用vlookup查找"财务部"的次数,结果为2;然后用sequence将2扩展为{1;2};再用if将{1;2}返回对应的{"财务部";"财务部"}。通过一系列函数的运算,就实现了扩展的效果。 最后还要执行一个迭代的过程,用vstack将初始值"部门"和{"财务部";"财务部"}纵向合并为{"部门";"财务部";"财务部"}。这样第一次循环就执行完成了,它的结果{"部门";"财务部";"财务部"}作为下一次循环的初始值。 第二次循环的是"生产部",还是重复执行上面一系列的过程。先用vlookup查找"生产部"的次数,结果为1;然后用sequence将1扩展为{1};再用if将{1}返回对应的{"生产部"}。 扩展完成后,用vstack将第一次循环的结果{"部门";"财务部";"财务部"}和{"生产部"}纵向合并为{"部门";"财务部";"财务部";"生产部"},作为第二次循环的结果,也是下一次循环的初始值。 后面的循环和前面的过程是一样的,先把对应部门的数据扩展,然后用上一次的结果和扩展后的数据合并。重复这个过程,一直把A列部门循环迭代完为止。 2.给部门加编号 ![]() ![]() 4.各部门间插入空行并编号 ![]() PS:365新函数功能太好用了,很多难的问题被优化的简单了,而且更接近编程式语言了,可以像编程一样工作。 |
|