打开APP
userphoto
未登录

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

开通VIP
再说Excel按指定次数复制数据,不用PQ不用辅助列

  文 前 推 荐   


IF函数{1,0}结构原理和用法
用PQ实现按指定次数复制数据
再说INDEX函数的两个神奇用法,让公式变简单
将复制内容只粘贴到可见的不连续区域中

编按:

再介绍一个直接用Excel的老函数就可以实现按指定次数复制数据的方法。不用PQ ,不用辅助列!


昨日晚间听部落窝老师说帮一位学员解决按指定次数复制数据的问题,如下图。
小窝当时有点显摆,说了三种方法:用PQ、用辅助列+老函数、用辅助列+新函数。
结果老师说,用不着PQ,也用不着辅助列,一个普通公式就搞定。
太打脸了!
不过小窝也学到了,今天特意分享给大家。
公式:
=IFERROR(INDEX($A$2:$A$7,SMALL(IF($B$2:$B$7>=COLUMN(A:Z),ROW($B$2:$B$7)-1),ROW(A1)),),"")
说明:
如果复制次数是相同的,譬如每个姓名复制3次,那么只要能生成如“1;1;1;2;2;2;3;3;3;4;4;4;…”的每个数重复3次的序列,就可以用INDEX函数按序列依次把每个姓名复制3次。
但现在复制次数不等,如果继续用INDEX函数引用姓名,则需要生成如“1;1;1;2;2;2;2;3;3;4;4;4;4;4;4;…”的序列,序列中每个数的重复次数等于复制次数,
那如何生成这样的序列呢?
下拉填充公式:
=SMALL(IF($B$2:$B$7>=COLUMN(A:Z),ROW($B$2:$B$7)-1),ROW(A1))
这里面最关键的是$B$2:$B$7>=COLUMN(A:Z)
COLUMN(A:Z),可以生成1到26的序列{1,2,3,4,5,…26}。该序列是单行数组,1行26列。
$B$2:$B$7,是单列数组,1列 6行{3;4;2;6;2;4}。
比较运算后,根据数组运算规则(不懂的请查看文前或者文后的推荐教程《IF函数{1,0}结构原理和用法》中的数组逻辑)自动扩展数组,会生成6行26列的数组。
然后是用IF函数赋值。上方数组中的TRUE都从6行1列序列{1;2;3;4;5;6}(由ROW($B$2:$B$7)-1)生成)中取值。
最后用SMALL函数逐个提取数组中的数,得到需要的“1;1;1;2;2;2;2;3;3;4;4;4;4;4;4;…”的序列。
哎,打脸!小窝还专门做过按指定次数复制数据的教程,都没有想到利用单列和单行来比较生成需要的数组。
还是自己不够灵活啊。
为了挽回一点面子,最后送大家一个用新函数的方法:
=TEXTSPLIT(CONCAT(REPT(A2:A7&"/",B2:B7)),,"/",1)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel根据指定次数,在一列中重复数据,PQ派上用场!
EXCEL如何根据指定次数生成重复序列
用函数在Excel中从文本字符串提取数字
excel指定次数重复填充数据视频:Index函数取值引用原理
Excel函数学习31:IF函数
按指定次数复制,只有想不到,没有做不到!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服