首页 > 解决方案 > 从 Excel 中包含逗号分隔值的两个单元格中提取公共值

问题描述

有没有一种简单的方法可以从逗号分隔的两个单元格中提取常用数字?

我在每个单元格中有 12 个逗号分隔数字的单元格。(它们并不都是唯一的。有些数字可以重复两次。但不能超过两次。数字都是正数,只有一位或两位数字)

我的数据是这样的:它们在 A 列中:

11,11,13,15,16,18,20,20,26,27,28,29
8,9,10,12,13,14,18,20,21,22,24,28
13,13,14,14,15,17,18,19,20,21,23,25
6,6,8,10,12,14,15,17,18,20,20,25
11,13,17,18,19,19,22,25,26,28,28,31
7,9,15,16,17,18,23,24,24,25,26,27
7,9,11,12,12,15,16,16,18,18,20,23
9,11,13,15,18,22,23,24,25,28,29,29
7,9,10,11,12,12,13,14,15,16,19,22
5,10,11,12,12,16,17,18,20,22,24,25
7,10,13,16,16,17,18,19,21,23,24,24
10,14,16,18,18,19,21,23,23,25,27,28

我想要的结果是这样的:

在此处输入图像描述

我需要一个不将值分成不同列的解决方案,拜托。谢谢你的帮助。

由于在某些情况下可能会有重复两次的数字,我愿意接受这样的解决方案。

在此处输入图像描述

标签: excelvba

解决方案


没有 VBA 是可能的:

在此处输入图像描述

中的公式B1

=TEXTJOIN(",",,UNIQUE(IF(ISNUMBER(FIND(","&FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s")&",",","&A2&",")),FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s"),"")))

如果你没有,UNIQUE你可以使用 XPATH 返回唯一值:

=TEXTJOIN(",",,IF(ISNUMBER(FIND(","&FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s[not(preceding::*=.)]")&",",","&A2&",")),FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s[not(preceding::*=.)]"),""))

在这种情况下,您还需要通过确认CtrlShiftEnter


推荐阅读