WPS专属函数+Excel,5种解法通关这个难题!

职场   教育   2024-09-13 07:04   江苏  
随着微软和WPS不断的更新迭代,过去复杂的问题,现在不仅简单,而且多了很多解法,今天我们就给大家总结一波!

▍需求说明

需求比较简单,就是把A列的内容,按照B列指定的次数重复,并一列显示!


我们将分享从老版本通用解法到最新的套路,从复杂到简单的各种套路!

▍解法01 - 老版本通用

随着WPS的更新和Excel升级,这个解法使用已经比较少了,比较复杂,新手难以理解,需要一定的函数基础!我们简单解释一下,利用的是LOOKUP返回小于等于查找值的最大值对应的结果,第二参数把次数依次累和处理,对应的结果是{3;7;9},你可以参数用这个代替第二参数或者辅助列的方式来简化公式
▼老版本记得数组公式-三键录入
=LOOKUP(ROW(A1)-1,SUBTOTAL(9,OFFSET($B$1,,,ROW($1:$4))),$A$2:$A$4)&""


上面的解法太复杂了,下面我们来看一下新版本的解法,难度要降低不少!

▍解法02 - 新版超护发公式

超级简单有没有,WPS和Excel365及以上版本都可以使用!这里有点数组的思维,也就是用A:Z对应的1~26列和3行次数比较,小于的时候,返回对应的内容,否则返回\,有文本没添加双引用,导致错误,在用TOCOL去掉错误,就这么简单!
=TOCOL(IF(COLUMN(A:Z)<=B2:B4,A2:A4,\),3)


当然365函数式编程后,很多同学很少使用过去的数组处理思维处理,所以下面我们讲一下遍历法!

▍解法03 - 编程遍历法

下面分享是逐行遍历处理,一般的编程思路,if处理部分也有点数组,大家也可以使用EXPAND函数代替处理,基本一样,只是个人习惯!
▼逐行遍历处理
=DROP(REDUCE("",B2:B4,LAMBDA(x,y,VSTACK(x,IF(SEQUENCE(y),OFFSET(y,,-1))))),1)


除了这些写法,WPS还推出了独有的函数,解决这个问题,相对也要简单很多!

▍解法04 - WPS专属函数

REPTARRAY函数是WPS的专属函数,Excel没有对应的函数,也是今年WPS更新新增的函数!之前文章也有介绍过,感兴趣的可以翻一翻!
简单来说,就是按照指定的次数,行列扩展,当然第一参数支持数组,但是可惜的是第2、3参数并不支持数组!

=DROP(REDUCE("",D2:D4,LAMBDA(x,y,VSTACK(x,REPTARRAY(OFFSET(y,,-1),y)))),1)



以上都是常规的思路,还有一些冷门的字符解法,我们也可以简单分享一个!但是一般并不推荐,因为字符串长度有限制,这是单元格本身容纳的字符量所限制的!

▍解法04 - 字符串解法

这个应该就不用多解释了,文本添加间隔符,然后按指定的次数重复内容,合并都一起后再拆分即可!
=TEXTSPLIT(CONCAT(REPT(A2:A4&"|",B2:B4)),,"|")


以上就是我们给大家总结的几种玩法了,你都会吗?以后遇到类似的问题,不要再说不会了!今天的函数的专题、Py、PQ、技巧等都可以处理这些基础问题!快去试试吧!

课程推荐
▍课程 | Excel全系列教程合集【函数、PQ、VBA、JSA等】 🔥 🔥🔥
▍会员 | 再升级!终生学习第六期
代码 | VBA常用代码合集
课程 | 365函数通关教程🔥🔥🔥



Excel办公实战
分享Excel及WPS函数、技巧、VBA、PBI、JSA等办公技能。助你轻松实现办公自动化!易办公◎早下班!
 最新文章