我的工作表中有10个左右的列。每列包含大约200个名称,并且工作表上有否其他数据。
我想要做的是创建一个只包含列之间通用名称的新列。因此,基本上将每列中的每个单元格与所有其他列中的所有其他单元格进行比较,并仅返回公共单元格。
例如:
Column1:name_A,name_C,name_F
Column2:name_C,name_B,name_D
Column3:name_C,name_Z,name_X
所以在这个例子中,新列只包含name_C,因为它是所有三列共有的唯一值。
有没有办法做到这一点?我对Excel的了解很差,而且在网上找不到与我的问题类似的内容,所以我将不胜感激。
感谢阅读,
<磷>氮答案 0 :(得分:0)
将所有内容放在一个电子表格中,创建一个数据透视表可能比您想到的算法更有效。
答案 1 :(得分:0)
这是我的模拟。我添加了额外的名字来展示更好的
D(公式)具有最简单的版本。这将仅列出所有列中显示的值,但这些值将显示在与A列中相应名称相同的行中,带有空格,而不是已排序(给出D(结果))
如果您希望所有名称都显示在顶部 - 如E列所示,您可以对表格进行排序(如果列更改,则必须重新排序)或者您可以使用我的解决方案:
=UNIQUEVALUES(IF(COUNTIF(A2:C9,A2:A9)=3,A2:A9,""))
通过单击ctrl-shift-enter接受公式(这将创建一个数组公式,并且公式周围会出现花括号)
A B C D(formula) D(result) E(result - sorted)
-------------------------------------------------------------------------------------------------------
1 | name_A name_C name_C =IF(COUNTIF($A$1:$C$8,A1)=3,A1,"") name_m
2 | name_C name_B name_Z =IF(COUNTIF($A$1:$C$8,A2)=3,A2,"") name_C name_C
3 | name_F name_D name_X =IF(COUNTIF($A$1:$C$8,A3)=3,A3,"")
4 | name_t name_o name_g =IF(COUNTIF($A$1:$C$8,A4)=3,A4,"")
5 | name_y name_p name_h =IF(COUNTIF($A$1:$C$8,A5)=3,A5,"")
6 | name_u name_k name_7 =IF(COUNTIF($A$1:$C$8,A6)=3,A6,"")
7 | name_i name_5 name_9 =IF(COUNTIF($A$1:$C$8,A7)=3,A7,"")
8 | name_m name_m name_m =IF(COUNTIF($A$1:$C$8,A8)=3,A8,"") name_m