示例:按指定次数重复数据 如图281所示,A2:A4单元格区域为需要重复的数据,B2:B4单元格区域为指定数据要重复的次数。要求生成C列的结果。 图 281 按指定次数重复数据 C2单元格输入以下数组公式,按 {=INDEX(A:A,SMALL(IF(B$2:B$4>=COLUMN(A:Z),ROW(A$2:A$4),99),ROW(A1)))&''} COLUMN(A:Z)部分生成1~26连续自然数的水平数组,ROW(A$2:A$4)部分返回A列数据行号{2;3;4}的垂直数组。 IF(B$2:B$4>=COLUMN(A:Z),ROW(A$2:A$4),99)部分,逐个判断指定重复的次数与1~26的关系,如果指定重复的次数大于等于1~26中的数字,则返回ROW($2:$4)生成数组中对应的值,否则返回第三参数99。 IF函数部分生成结果如图 282所示。A2单元格数据要重复3次,因此2这个行号在数组第一行出现3次;A3单元格数据要重复4次,因此3这个行号在数组第二行出现4次;后面以此类推。 图 282 IF函数部分生成结果 SMALL函数按从小到大顺序逐个输出符合条件的行号。当公式向下复制行数超过需重复的次数总和时,SMALL函数返回99。 INDEX函数根据SMALL函数返回的结果依次提取A2:A4单元格区域中的数据,当公式向下复制行数超过需重复的次数总和时,INDEX函数返回A99这个空单元格的引用。公式最后用&''屏蔽无意义的0值。 |
|
来自: hercules028 > 《excel》