Excel按指定次数重复数据,一个Expand新公式搞定!

志课程 2024-03-05 06:01:49

老板发给你左边的表格,第一列是文本,第二列是数字,让你根据数字的次数重复数据向下堆积,转换成右边的样子:

然后数据有几十条,如果手动的去更新的话,就太慢了,且效率低,有传统做法和新公式做法,看你更喜欢用哪种

1、传统Vlookup公式法

首先我们需要在数据最左边插入一列,建立辅助列,并且在A2单元格中输入公式:

=SUM($C$1:C1)

对C1开始进行累计求和,填充的行一定要比原始数据多一行出来

然后我们需要使用Vlookup公式的模糊查找匹配,输入的公式是:

=VLOOKUP(ROW(A1)-1,A:B,2,1)&""

其中row(a1)公式是用来提取A1单元格的行标,本质就是数字1,为了向下拖动自动变成2,所以才用的这个公式

然后Vlookup公式第4参数用的1,表示模糊查找匹配

最后&""是用来填充到最底下的时候,查找不到结果了,显示为空白

2、新方法Expand+Tocol

传统方法必须在数据的最左边插入一列,如果只能在数据右边添加辅助列呢?那我们可以用Expand函数轻松搞定

我们在右边输入公式:

=EXPAND(A2,,B2,A2)

可以将A2的数据,按B2重复的次数,自动的重复了对应的文本,并且填充到了后面的单元格中

最后,我们只需要将这些文本转换成一列竖向的就可以了,前面我们学过新函数公式TOCOL轻松搞定

我们输入的公式是:

=TOCOL(F:XFD,3,FALSE)

第一参数是从F列到最后一列

第二参数,数字3,表示忽略空白值和错误值

第三参数,false,表示逐行扫描

最终也得到了我们想要的结果

3、一条公式搞定

如果说不想用辅助列,需要一个公式一步到位的话,可以使用公式:

=REDUCE(A1,A2:A4,LAMBDA(a,b,VSTACK(a,EXPAND(b,OFFSET(b,,1),,b))))

用到了REDUCE和LAMBDA的组合应用

以上三种方法,你更喜欢用哪种呢?动手试试吧!

0 阅读:4

志课程

简介:感谢大家的关注