代码之家  ›  专栏  ›  技术社区  ›  ChingLu Tay

从一个单元格中的组合数据中删除重复项

  •  0
  • ChingLu Tay  · 技术社区  · 6 年前

    单元格1:abc&def

    ***更正-抱歉,如果我输入的细节不好。数据实际上是名称,例如:

    3 回复  |  直到 6 年前
        1
  •  1
  •   JvdV    6 年前

    也许这会有帮助,直到公式出现。复制粘贴到模块:

    str1=替换(str1,“&”,,,) str2=替换(str2,“&”,,,) arr1()=拆分(str1,“,” Y=0 redim preserve arr3(y)保留 下一个X redim preserve arr3(y)保留 Y=Y+1 对于x=lbound(arr3)to ubound(arr3) 如果POS<gt;0,则 下一个X getString=strReverse(replace(strReverse(getString),strReverse(“,”),strReverse(“&”),1))
    
    
    
    
    

    =GetString(Cell1, Cell2)
    

    结果:

    enter image description here

        2
  •  0
  •   Pawel Czyz    6 年前
    enter image description here

        3
  •  0
  •   Tom Sharpe    6 年前

    按公式计算是可行的。基本方法是:

  • 使用标准的split公式,从 here. but modified so it products an array of strings.

  • 使用textjoin连接其余的元素。

  • =TEXTJOIN(",",true,IF(MATCH(
    TRIM(MID(SUBSTITUTE(A1,"&",REPT(" ",LEN(A1))),(ROW(Z1:INDEX(Z:Z,LEN(A1)-LEN(SUBSTITUTE(A1,"&",""))+1))-1)*LEN(A1)+1,LEN(A1))),
    TRIM(MID(SUBSTITUTE(A1,"&",REPT(" ",LEN(A1))),(ROW(Z1:INDEX(Z:Z,LEN(A1)-LEN(SUBSTITUTE(A1,"&",""))+1))-1)*LEN(A1)+1,LEN(A1))),
    0)
    <ROW(Z1:INDEX(Z:Z,LEN(A1)-LEN(SUBSTITUTE(A1,"&",""))+1)),"",
    TRIM(MID(SUBSTITUTE(A1,"&",REPT(" ",LEN(A1))),(ROW(Z1:INDEX(Z:Z,LEN(A1)-LEN(SUBSTITUTE(A1,"&",""))+1))-1)*LEN(A1)+1,LEN(A1)))))
    

    substitute(A1&","&A2,"&",",")
    

    =substitute (*entire formula*,",","&",len(*entire formula*)-len(substitute(*entire formula*,",","")))
    

    所以唯一理智的方法就是用几个辅助细胞-

    =SUBSTITUTE(A1&" , "&A2,"&",",")
    

    在C1中:

    =TEXTJOIN(" , ",true,IF(MATCH(
    TRIM(MID(SUBSTITUTE(B1,",",REPT(" ",LEN(B1))),(ROW($Z1:INDEX($Z:$Z,LEN(B1)-LEN(SUBSTITUTE(B1,",",""))+1))-1)*LEN(B1)+1,LEN(B1))),
    TRIM(MID(SUBSTITUTE(B1,",",REPT(" ",LEN(B1))),(ROW($Z1:INDEX($Z:$Z,LEN(B1)-LEN(SUBSTITUTE(B1,",",""))+1))-1)*LEN(B1)+1,LEN(B1))),
    0)
    <ROW($Z1:INDEX($Z:$Z,LEN(B1)-LEN(SUBSTITUTE(B1,",",""))+1)),"",
    TRIM(MID(SUBSTITUTE(B1,",",REPT(" ",LEN(B1))),(ROW($Z1:INDEX($Z:$Z,LEN(B1)-LEN(SUBSTITUTE(B1,",",""))+1))-1)*LEN(B1)+1,LEN(B1)))))
    

    =substitute(C1,",","&",len(C1)-len(substitute(C1,",","")))
    

    enter image description here

    enter image description here

    轮班