打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
按指定次数重复内容的套路合集

-套路合集-

按指定次数重复内容

1.vlookup精确查找(4参为0)

如下图所示,B列的是要重复的内容,C列是要重复的次数,最后想要的效果是E列那样。A重复2次,B重复3次......

首先在A列添加一个辅助列,在A3单元格输入公式=SUM(C$3:C3),向下填充。这样A列得到的数据就是C列次数的累加求和。然后在E2单元格输入公式=IFNA(VLOOKUP(ROW(A1),$A:$B,2,),E3)&"",向下填充,完成。

这个公式用的是vlookup的精确查找方式,外面套了个ifna是为了处理错误值,如果vlookup的结果出错,那么返回下一个单元格。这个公式刚开始的时候还是不太好理解的。因为它的结果会引用(依赖)下一个单元格,而下一个单元格会引用下下一个单元格。

如果不用辅助列也能做出来,公式比较长。在G2单元格输入第1个公式=IFNA(VLOOKUP(ROW(A1),IF({1,0},SUMIF(OFFSET(C$3,,,ROW($1:$4)),"<>"),B$3:B$6),2,),G3)&"",先按ctrl+shift,再按enter。向下填充。

在H2单元格输入第2个公式=IFNA(VLOOKUP(ROW(A1),IF({1,0},MMULT(N(ROW($1:$4)>=COLUMN(A:D)),C$3:C$6),B$3:B$6),2,),H3)&"",不用三键,向下填充。

这2个公式之所以不用辅助列,是因为已经用offset或mmult构建出A列的辅助列了,只不过放在内存数组中,而不是单元格中。

2.lookup升序查找

同样先看辅助列的公式,在A列添加辅助列(其它列也可以),在A3单元格输入公式=SUM(C$2:C2),向下填充,注意这个辅助列是从0开始的,比上一个例子的辅助列多个0。然后在E2单元格输入公式=LOOKUP(ROW(A1)-1,A$3:A$7,B$3:B$6)&"",向下填充,完成。

不用辅助列的公式也给出2个,第1个在G2单元格输入公式=LOOKUP(ROW(A1)-1,MMULT(N(ROW($1:$5)>COLUMN(A:D)),C$3:C$6),B$3:B$6)&""

第2个在H2单元格输入公式=LOOKUP(ROW(A1)-1,SUMIF(OFFSET(C$2,,,ROW($1:$5)),"<>"),B$3:B$6)&"",这2个公式都不用按三键,向下填充。主要用的函数还是offset和mmult。

3.match精确查找(3参为0)和升序查找(3参为1或缺省)

首先看match精确查找,其实和vlookup精确查找是差不多的。A列添加辅助列(其他列也可以),在A3单元格输入公式=SUM(C$3:C3),向下填充。然后在E2单元格输入公式=IFNA(INDEX(B$3:B$6,MATCH(ROW(A1),A$3:A$6,)),E3)&"",向下填充完成。

不用辅助列的公式就不写出来了,基本都差不多,大家可以自己下载文件查看。

再来看match升序查找,这种查找方式和lookup还有vlookup模糊查找的方式基本差不多。所以vlookup函数也可以用模糊查找的方式来完成,大家可以自己试一下。接下来还是看match升序查找,同样添加辅助列,在A18单元格输入公式=SUM(C$17:C17),向下填充。然后在E18单元格输入公式=INDEX(B$18:B21,MATCH(ROW(A1)-1,A$18:A$22))&"",向下填充完成。

4.textjoin+rept

textjoin是个文本连接函数,我个人是非常喜欢这个函数,所以很多时候都会往这个函数的方向来思考问题。在E2单元格输入公式=TRIM(MID(TEXTJOIN(,,REPT(A$3:A$6&REPT(" ",99),B$3:B$6)),ROW(A1)*99-98,99)),按三键结束,向下填充。

简单地说下大概的思路,先用重复函数rept来按次数重复内容,比如A重复2次就成了AA,B重复3次就是BBB,......当然AA中间还要加入99个空格然后用textjoin将中间带空格的AABBB....连接成一个很长的字符串,最后用mid一个个提取出来。简单来说就是先重复,连接,最后提取。

5.二维数组的万金油

在上篇文章《万金油公式在二维数组中的应用》中,我发现二维数组的万金油公式可以实现按次数重复内容的效果。在E2单元格输入公式=INDEX(A:A,SMALL(IFERROR(--MID(REPT(ROW($3:$6)&REPT(" ",99),B$3:B$6),COLUMN(A:I)*99-98,99),4^8),ROW(A1)))&"",按三键结束,向下填充。

这个题目和之前那个题目还是有些不一样的,因为之前那个题目要重复的次数不是像今天这样直接写在一个单元格中的,而是把所对应的内容横向分布在多个单元格中,所以现在也要像之前那样构建二维数组。有兴趣的童鞋可以自己看下公式。觉得复杂也可以用前面的公式。当然除了用函数,还可以用其他的方法,比如pq,vba等。

练习文件链接:

https://pan.baidu.com/s/18s8lODJzeTurSvvKVi3Vzw

提取码:7dmd

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VLOOKUP函数实现数据一对多查找
LOOKUP万能函数18大用法,与VLOOKUP,IF十几种函数组合无敌,必收藏
Excel表格使用函数制作在添加数据之后可以实时更新的排序
Excel教程:Vlookup函数一对多匹配并全部显示出来
使用VLOOKUP函数返回查找到的多个值的方法
Excel问伊答之9:REPT函数有神马用?嗨,其实她有趣可乐,还是个世外高人呢
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服