老板发给你左边的表格,第一列是文本,第二列是数字,让你根据数字的次数重复数据向下堆积,转换成右边的样子:
然后数据有几十条,如果手动的去更新的话,就太慢了,且效率低,有传统做法和新公式做法,看你更喜欢用哪种
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的组合应用
以上三种方法,你更喜欢用哪种呢?动手试试吧!