即使原始列表包含具有=""的单元格,也要创建一个唯一列表

时间:2018-01-25 12:04:31

标签: excel excel-formula

我有以下Excel电子表格:

         A                    B 
1   Original List          Unique List
2   Product A               Product A
3   Product A               Product B
4   Product B               Product C
5   =""
6   Product A
7   Product C
8   Product B
9   =""
10  Product C

A栏中,我有多次包含多个产品的列表。我的目标是在 B列中创建所有唯一项目的列表。

为了实现这个目的,我在细胞B2:B10 中使用了this帖子中的公式:

B2:B10 =IFERROR(INDEX($A$2:$A$10,MATCH(SUM(COUNTIF(B$1:B1,$A$2:$A$10)),COUNTIF($A$2:$A$10,"<"&$A$2:$A$10),0)),"")

我得到以下结果:

         A                    B 
1   Original List        Unique List
2   Product A            
3   Product A            Product A
4   Product B            Product B
5   =""                  Product C
6   Product A
7   Product C
8   Product B
9   =""
10  Product C

这个结果非常接近我想要的列表。唯一的问题是公式无法处理 A列中某些单元格中的公式=""。不是在 Cell B2 中启动列表,而是在 Cell B3 中启动列表。

我如何制作公式,以便在原始列表中有=""的单元格时也可以使用?

3 个答案:

答案 0 :(得分:0)

你能否使用excel内置的&#39;删除重复项&#39; ?功能:

Range("$A$2:$A$10").RemoveDuplicates Columns:=1, Header:=xlNo

答案 1 :(得分:0)

我们可以使用“帮助”列。在 C2 中输入:

=IF(A2="","",IF(COUNTIF($A$2:A2,A2)>1,"",1+MAX($C$1:C1)))

并复制下来。列 C A 列中的每个项目分配一个简单的顺序值,从中提取数据。然后在 B2 中输入:

=IFERROR(INDEX($A$2:$A$10,MATCH(ROWS($1:1),$C$2:$C$10,0)),"")

并复制下来:

enter image description here

注意:

此方法使用普通公式而不是数组公式。

答案 2 :(得分:0)

您可以使用Advanced Filter

使用公式条件,例如=LEN(A5)>0,其中A5是第一个包含数据的单元格。然后检查“高级过滤器”对话框中的Unique Records Only。您可以就地过滤,也可以过滤到新位置