数量转成行数
问题:每个类别对应的数量转成这一类别出现的行数
函数公式解决:
{=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函数将单元格地址变成间接引用,最终达到效果