EXCEL/WPS表格中,在单元格内有姓名、次数,要根据次数来显示相应的姓名数,如下表,A列是姓名,B列是指定每个姓名需要在目标单元格内按照各自不同的重复次数依次排列下来,结果如C列。
目的:根据单元格内指定的重复次数来显示指定内容。
方法:
在目标单元格内输入公式=INDEX(A:A,SMALL(IF(B$2:B$3>=COLUMN(A:Z),ROW(A$2:A$3),999),ROW(A1)))&""。
操作演示
公式解读:
1.COLUMN(A:Z)这个是提取列编号,表示返回1—26个数字组成的横向依次排列的数组;A:Z是根据指定次数的多少来自行增减的。
操作演示
2.ROW(A$2:A$3)表示提取A列中不同姓名各自分别对应的行号,行号是纵向的。
操作演示
3.IF(B$2:B$3>=COLUMN(A:Z),ROW(A$2:A$3),999)这个是判断B列中次数据的数字,是否大于等于它对应的列编号,如果大于就提取列数字对应的行编号,否则就返回999;这样就行成了一行行标题是1—26,列标题是2—3的二维表,如行号为2的后面跟着5个2,表示姓名在第二行里指定次数为5次,行号为3的姓名指定显示次数为3次。如下图所示:
操作演示
4.SMALL(IF(B$2:B$3>=COLUMN(A:Z),ROW(A$2:A$3),999),ROW(A1)),SMALL函数的意思是把上图这编号从小到大排列,并且纵向排列。
操作演示
5.INDEX(A:A,SMALL(IF(B$2:B$3>=COLUMN(A:Z),ROW(A$2:A$3),999),ROW(A1)))&"",INDEX函数就是通过行号提取对应行号单元格里的内容,后面&""表示对公式向下填充后没有值就出现0的情况,对0进行屏蔽。
操作演示
@EXCEL/WPS实例应用分享
,Copyright © 2008-2022 秒下下载站
m.down10s.com .All Rights Reserved