在Excel中列出不同的值

这个问题与 这个问题有关

我有如下的数据。

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 

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

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

我尝试了=IF(COUNTIF(A$1:A1,A1)=1,A1,"")但问题是我得到22-Oct-12 infront第一次出现22-Oct-1223-Oct-12 23-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 

注:我可以通过MACRO做到这一点,但我不想使用MACRO。 我想通过使用Excel函数来完成这个任务。

此外,我可以按照这个答案上面做,但我不想手动完成。

一切都由预定义的excel函数来完成。 没有macros观或没有手动的工作。

假设数字数据(例如数字或date)…..

在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行的数据相应的调整。

这种方法将按时间顺序列出date而不重复,但是它们在数据内sorting

试试这个,然后使用CONTROL + SHIFT + ENTER

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