求助一个excel的公式问题

  • p
    presio
    比如说有一列数据,内容是abcd,另外有个参数比如是3,
    求一个公式,能够产生新的一列:aaabbbcccddd
    多谢指点
  • z
    zsj1zsj
    内容的长度(ABCD共四位)固定的话这样就可以了
    A1是内容 B1是重复次数
    =REPT(LEFT(A1,1),B1)&REPT(MID(A1,2,1),B1)&REPT(MID(A1,3,1),B1)&REPT(MID(A1,4,1),B1)
  • t
    trowa2045
    只操作一次的话。。。是不是ABCD那一列删除重复项,然后你参数是几就复制几遍。。然后在排个序。。
  • w
    westlost
    如果有15位呢?
  • p
    presio
    ls两位,实际情况比这个复杂一些,abcd可能是几十个数据,不是按升降序排列的,顺序不能变。。。
  • i
    icybamboo
    假设数据在A列
    =REPT(INDEX(OFFSET($A$1,,,COUNTA($AA),),SMALL(IF(MATCH(OFFSET($A$1,,,COUNTA($AA),),OFFSET($A$1,,,COUNTA($AA),),0)=ROW(INDIRECT("$1"&COUNTA($AA))),ROW(INDIRECT("$1"&COUNTA($AA))),8^8),1),),3)
    有几个元素后面就&这个公式几次,把标红的数字按元素个数往下递增
    例如两个元素就是
    =REPT(INDEX(OFFSET($A$1,,,COUNTA($AA),),SMALL(IF(MATCH(OFFSET($A$1,,,COUNTA($A:$A),),OFFSET($A$1,,,COUNTA($A:$A),),0)=ROW(INDIRECT("$1:$"&COUNTA($A:$A))),ROW(INDIRECT("$1:$"&COUNTA($A:$A))),8^8),1),),3)&REPT(INDEX(OFFSET($A$1,,,COUNTA($A:$A),),SMALL(IF(MATCH(OFFSET($A$1,,,COUNTA($A:$A),),OFFSET($A$1,,,COUNTA($A:$A),),0)=ROW(INDIRECT("$1:$"&COUNTA($A:$A))),ROW(INDIRECT("$1:$"&COUNTA($A:$A))),8^8),2),),3)

    公式是数组公式

    如果用VBA公式就简单多了
    不过我这会午休,懒得写....

    [本帖最后由 icybamboo 于 2016-3-9 12:47 编辑]
  • w
    westlost
    用vba的话就简单了
    取数,重复,合并
  • w
    westlost
    如果又不想用vba的话,有个笨方法,估计你这个字符的最大数量,比如25,然后增加25个辅助列,然后将其隐藏,最后合并