首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一个单元格中的组合数据中删除重复项

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

Stack Overflow用户
提问于 2018-06-18 07:03:07
回答 2查看 505关注 0票数 0

我希望删除一个单元格中的重复项,其中数据是从两个单元格中组合的。例如:

单元1: ABC和DEF

第2单元: ABC、DEF和LMN

我希望将两个单元格1和2数据组合起来,这将同时删除重复的数据,并且看起来是:单元格3中的ABC、DEF和LMN。

如果有人能帮我做这件事我很感激。提前谢谢你。

*更正-对不起,如果我没有很好地输入细节。数据实际上是名称,例如:

单元1: John Mayer & Britney Spears第2单元: John Mayer,Britney Spears和Selena Gomez

我想在第三单元中得到的结果:约翰·梅尔、布兰妮·斯皮尔斯和塞琳娜·戈麦斯

意思是在单词之间有空格。逗号和符号也很重要。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-18 08:29:38

也许这将是有帮助的,直到一个公式出现。复制粘贴到模块中:

代码语言:javascript
复制
Public Function GetString(STR1 As String, STR2 As String) As String

Dim ARR1() As String, ARR2() As String, ARR3() As String
Dim X As Long, Y As Long, POS As Long

STR1 = Replace(STR1, " & ", ",")
STR1 = Replace(STR1, ", ", ",")
STR2 = Replace(STR2, " & ", ",")
STR2 = Replace(STR2, ", ", ",")

ARR1() = Split(STR1, ",")
ARR2() = Split(STR2, ",")

Y = 0
For X = LBound(ARR1) To UBound(ARR1)
    ReDim Preserve ARR3(Y)
    ARR3(Y) = ARR1(X)
    Y = Y + 1
Next X

For X = LBound(ARR2) To UBound(ARR2)
    ReDim Preserve ARR3(Y)
    ARR3(Y) = ARR2(X)
    Y = Y + 1
Next X

For X = LBound(ARR3) To UBound(ARR3)
    POS = InStr(GetString, ARR3(X))
    If POS <> 0 Then
        If Mid(GetString, POS + Len(ARR3(X)), 1) <> "," Then
            GetString = GetString & ARR3(X) & ", "
        End If
    Else
        GetString = GetString & ARR3(X) & ", "
    End If
Next X

GetString = Left(GetString, Len(GetString) - 2)
GetString = StrReverse(Replace(StrReverse(GetString), StrReverse(","), StrReverse(" &"), , 1))

End Function

就像:

代码语言:javascript
复制
=GetString(Cell1, Cell2)

结果:

票数 1
EN

Stack Overflow用户

发布于 2018-06-18 08:11:10

试试这个公式:

代码语言:javascript
复制
 =A1&(SUBSTITUTE(A2,A1,""))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50904170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档