Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 从单元格中的列表中提取重复项_Excel_Vba_Excel Formula - Fatal编程技术网

Excel 从单元格中的列表中提取重复项

Excel 从单元格中的列表中提取重复项,excel,vba,excel-formula,Excel,Vba,Excel Formula,我需要帮助从单元格中以逗号分隔的列表中提取重复项。 我可以走很长的路,但是如果可能的话,我需要一条短的路 以下是两个例子: 例如 谢谢你的帮助。 *我有Excel 2016。如果有TEXTJOIN(可从Excel 2019获得),请尝试: 你可以在你的UDF中做同样的事情。如果这激发了您的兴趣,那么您可能希望在SO上发表更多关于如何使用FILTERXML来返工分隔字符串的想法。如果您有TEXTJOIN(可从Excel 2019获得),请尝试: 你可以在你的UDF中做同样的事情。如果这激发了您的兴

我需要帮助从单元格中以逗号分隔的列表中提取重复项。 我可以走很长的路,但是如果可能的话,我需要一条短的路

以下是两个例子:

例如

谢谢你的帮助。
*我有Excel 2016。

如果有
TEXTJOIN
(可从Excel 2019获得),请尝试:


你可以在你的UDF中做同样的事情。如果这激发了您的兴趣,那么您可能希望在SO上发表更多关于如何使用
FILTERXML
来返工分隔字符串的想法。

如果您有
TEXTJOIN
(可从Excel 2019获得),请尝试:


你可以在你的UDF中做同样的事情。如果这激发了您的兴趣,那么您可能希望在SO上发表更多关于如何使用
FILTERXML
来返工分隔字符串的想法。

非常感谢@JvdV。。它现在工作得很好。谢谢你的帮助,非常感谢@JvdV。。它现在工作得很好。谢谢你的帮助。有什么特别的原因让你想要两次复制品吗?这里的后续行动是什么?出于好奇……对不起,我不在。没有必要,其中一个也足够了。这两种方法对我都有效。我不想让事情复杂化,这不会让事情变得复杂。请参阅答案中的更新。语法有点变化。再次感谢。那我就用新版本了。你有什么特别的理由要复制两次吗?这里的后续行动是什么?出于好奇……对不起,我不在。没有必要,其中一个也足够了。这两种方法对我都有效。我不想让事情复杂化,这不会让事情变得复杂。请参阅答案中的更新。语法有点变化。再次感谢。那么我将使用新版本。
A1: 1,4,4,6,10,58   
Result in B1: 4,4

A2: 5,5,10,55,70,70,76
Result in B2: 5,5,70,70
=TEXTJOIN(",",,FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s[preceding::*=. or following::*=.]"))
Function Dupes(str As String) As String
    With Application
        Dupes = Join(.Transpose(.FilterXML("<t><s>" & Replace(str, ",", "</s><s>") & "</s></t>", "//s[preceding::*=. or following::*=.]")), ",")
    End With
End Function
=FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s[preceding::*=. ][not(following::*=.)]")