将单元格按指定次数重复显示,这不是新课题,但是现在可以很简单。
不信来看三个方法。
案例:从下图 1 的姓名按 B 列的次数重复显示,效果如下图 2 所示。
1. 在 D2 单元格中输入以下公式 --> 回车:
=TOCOL(IF(COLUMN(A:Z)>B2:B4,NA(),A2:A4),2)
公式释义:
COLUMN(A:Z):提取出 A 至 Z 列的列号;之所以截至到 Z 列,是因为我们不确定 B 列的求和数是多少,就尽可能取一个大点的数据区间;
IF(...>B2:B4,NA(),A2:A4):将上述公式的结果与 B 列的数值一一比较,如果大于 B 列的值,则返回错误值,反之返回 A 列的值;
TOCOL(...,2):将上述结果区域转换成一列,第二个参数为 2 表示忽略错误值
解决方案 2:1. 改用以下公式:
=TEXTSPLIT(CONCAT(REPT(A2:A4&",",B2:B4)),,",",1)
公式释义:
REPT(A2:A4&",",B2:B4):给 A 列的每个姓名后面加上“,”符号,重复显示,次数为 B 列的数值;
CONCAT(...):将上述结果连接在一起;
TEXTSPLIT(...,,",",1):将上述结果按列行分,拆分的节点为“,”符号,最后一个参数 1 表示忽略连续的换行
解决方案 3:1. 选中数据表的任意单元格 --> 选择任务栏的“数据”-->“来自表格/区域”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已经上传至 Power Query。
3. 选择任务栏的“添加列”-->“自定义列”
4. 在弹出的对话框中输入以下公式 --> 点击“确定”
{1..[重复次数]}
5. 将“自定义”列“扩展到新行”。
6. 删除“自定义”列。
7. 选择任务栏的“主页”-->“关闭并上载”-->“关闭并上载至”
8. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“确定”
右侧绿色的表格就实现了需求。