分享

如何按指定次数重复数据

 hercules028 2019-01-31

示例:按指定次数重复数据

如图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值。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多