数量转成行数

问题:每个类别对应的数量转成这一类别出现的行数

 

函数公式解决:

{=INDIRECT(TEXT(SMALL(IF(B$2:B$4>=COLUMN(A:D),ROW($2:$4)*10+1,99),ROW(A1)),"r0c0"),)&""}

思路:

B$2:B$4>=COLUMN(A:D)部分建构一个三行四列的矩阵,每行True出现的次数与题目中的数量一致

IF(B$2:B$4>=COLUMN(A:D),ROW($2:$4)*10+1,99)部分将上述矩阵中返回True的结果转成对应行数乘以10加1的结果,False则返回一个较大的数

 

利用Small函数将If的结果从小到大排列

利用Text函数将数值格式化成R1C1单元格样式

利用Indirect函数将单元格地址变成间接引用,最终达到效果

posted @ 2023-01-01 16:11  熬肥妖  阅读(34)  评论(0编辑  收藏  举报