列出excel中的不同值

时间:2012-10-29 12:27:31

标签: excel excel-formula

此问题与 this question有关。

我的数据如下。

 Col A
22-Oct-12
22-Oct-12
22-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
23-Oct-12
24-Oct-12
24-Oct-12
24-Oct-12

我想要的是在B列中找到唯一值,以便输出如下。

 Col A
22-Oct-12
23-Oct-12
24-Oct-12

我尝试使用=IF(COUNTIF(A$1:A1,A1)=1,A1,""),但问题是我22-Oct-12首次出现22-Oct-12前面23-Oct-1223-Oct-12首次出现 Col A Col B 22-Oct-12 22-Oct-12 22-Oct-12 22-Oct-12 23-Oct-12 23-Oct-12 23-Oct-12 23-Oct-12 23-Oct-12 23-Oct-12 23-Oct-12 24-Oct-12 24-Oct-12 24-Oct-12 24-Oct-12 。输出如下所示。

 Col A       Col B
22-Oct-12   22-Oct-12
22-Oct-12   23-Oct-12
22-Oct-12   24-Oct-12
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
24-Oct-12   
24-Oct-12   
24-Oct-12   

我不希望这样输出。我想要的是如下。

 Col A      Col B          Col C
22-Oct-12   22-Oct-12   22-Oct-12
22-Oct-12               23-Oct-12
22-Oct-12               24-Oct-12
23-Oct-12   23-Oct-12
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
23-Oct-12   
24-Oct-12   24-Oct-12
24-Oct-12   
24-Oct-12   

或者

{{1}}

注意: 我可以通过MACRO执行此操作,但我不想使用MACRO。我想通过使用excel函数来完成这项工作。

另外,我可以按照this answer进行上述操作,但我不想手动完成。

通过预定义的excel功能实现所有功能。没有MACRO或没有手动工作。

2 个答案:

答案 0 :(得分:1)

试试这个,并使用CONTROL + SHIFT + ENTER

=IFERROR(INDEX($A$2:$A$20;MATCH(0;COUNTIF($B$1:B1;$A$2:$A$20);0));"")

答案 1 :(得分:1)

假设数字数据(例如数字或日期)......

在B1中使用此公式

=MIN(A1:A1000)

然后在B2(假设Excel 2007或更高版本)

=IFERROR(SMALL(IF(A$1:A$1000>B1,A$1:A$1000),1),"")

...或早期的Excel版本

=IF(COUNTIF(A$1:A$1000,">"&B1),MIN(IF(A$1:A$1000>B1,A$1:A$1000)),"")

CTRL+SHIFT+ENTER确认并复制

如果您有超过1000行数据进行相应调整。

此方法将按时间顺序列出日期而不重复,但它们是在数据中排序的