Excel &引用;“获取唯一值”;公式中添加了一行“;0“';s在桌子的尽头

Excel &引用;“获取唯一值”;公式中添加了一行“;0“';s在桌子的尽头,excel,excel-formula,array-formulas,Excel,Excel Formula,Array Formulas,我试图在我的书中实现这个公式,将一个较大的表压缩成一个列表格式。我不能使用pivot表,因为在完成这个压缩列表后,我需要在后面的列中进行复杂的计算 该表如下所示: 行#列由数组公式填充: {=IFERROR(匹配(0,COUNTIF(间接($F$1:$F$”&行(E3)-1),$A$1:$A$4000),0),“”)} 这意味着:“获取A列中第一个项目的行#,该行在我当前位置上方的F列中找不到” 其他三列由以下内容填充:=IFERROR(间接(“A”和$E2),“”) 我的问题是,表的最后一行总

我试图在我的书中实现这个公式,将一个较大的表压缩成一个列表格式。我不能使用pivot表,因为在完成这个压缩列表后,我需要在后面的列中进行复杂的计算

该表如下所示:

行#列由数组公式填充:

{=IFERROR(匹配(0,COUNTIF(间接($F$1:$F$”&行(E3)-1),$A$1:$A$4000),0),“”)}

这意味着:“获取A列中第一个项目的行#,该行在我当前位置上方的F列中找不到”

其他三列由以下内容填充:
=IFERROR(间接(“A”和$E2),“”)

我的问题是,表的最后一行总是用
0,0,0
填充,因为不知什么原因,它匹配第一个空白行作为唯一值

我的问题是:如何添加唯一值不为空或0的条件?

至于钳制搜索范围,表格是由程序生成的,具有可变的未知行数,因此我无法手动将表格范围设置为最后一个非空白行。我放入
$A$1:$A$4000
,这样我就不会错过表中的任何条目

如果有一种方法可以自动确定最后一行,那么也可以解决问题

编辑:我还意识到列表没有正确压缩,我正在努力让它比较所有三个值,而不仅仅是第一个值

Edit2:我用它来比较这三个值,但是如果有人对此有想法的话,
0,0,0
问题仍然存在


{=IFERROR(匹配(0,COUNTIF(间接($F$1:$F$”&行(E2)-1),$A$1:$A$4000)*COUNTIF(间接($G$1:$G$”&行(E2)-1),$B$1:$B$4000)*COUNTIF(间接($H$1:$H$”&行(E2)-1),$C$1:$C$4000),0),“)
既然您正在处理Excel 2007,并且想要一个唯一值表,我建议使用
高级过滤器

将数据设置为表格

导航到需要“筛选”结果的工作表

然后
Data=>Advanced Filter


如果您有三个以上的列,但只希望在前三个列上应用唯一筛选器,则可以为筛选器条件使用公式

例如:

    A1: Unique Formula
    A2: =COUNTIFS($A$7:$A7,$A7,$B$7:$B7,$B7,$C$7:C7,$C7)=1
您可以将此过滤器的效果可视化,方法是将其输入到第7行中表格旁边的某个帮助器列中,然后填充表格的长度。如果这样做,您可以使用自动筛选,只需在
1


如果您有Office 365,您可以使用
UNIQUE
功能。而且,您的计算和聚合很可能可以使用Windows Excel 2010+和Office 365中提供的Power Query完成。此外,如果您使用
表和结构化引用,它可以自动调整到使用的范围。@RonRosenfeld谢谢!但不幸的是,我使用的是Excel 2007,但如果我弄不明白,我可能会请求我的老板将我们升级到一个新版本。在这种情况下,考虑到多列和下游复杂公式的复杂性,我建议使用VBA解决方案(或者您可以升级并使用Power Query)。例如,要创建一个包含唯一项的表,考虑到所有三列,公式将是单个单元格中的
=UNIQUE(myTable)
。整个表将
溢出
到适当的大小范围。如果版本更为更新,您可以使用Power Query,它仍然允许保存为
。xlsx
这似乎是一个不错的选项,如何使用“过滤器列表,就地”选项?如何指定只在表的3列中查找唯一值,而不在其他列中查找?每当我按下OK时,没有任何变化,我怀疑它是唯一的,因为每一行都有一些唯一性,在我不想筛选的其他列中。@Son你没有提到你有超过三个列。要使用高级过滤器并将“唯一”过滤器限制为仅三列,我们需要使用公式标准。当然,您将丢失筛选出的行中的一些数据。要进行适当的过滤,只需选中该选项。你可能需要在同一张纸上。我将编辑我的答案以显示筛选方法。