"Get Unique Values" 公式在 table 的末尾添加一行“0”

"Get Unique Values" formula adds a row of "0"'s to the end of the table

我试图将 this 公式应用到我的书中,以将更大的 table 压缩成列表格式。我不能使用 pivot tables 因为我需要在完成这个压缩列表后在后面的列中进行复杂的计算。

table 看起来像:

行号列由数组公式填充:

{=IFERROR(MATCH(0,COUNTIF(INDIRECT("$F:$F$" & ROW(E3)-1),$A:$A00),0),"")}

翻译为:“获取 A 列中第一个项目的行号,该行在我当前位置上方的 F 列中找不到”

其他三栏填写:=IFERROR(INDIRECT("A" & $E2),"")

我的问题是 table 的最后一行总是用 0,0,0 填充,因为出于某种未知原因,它与第一个空白行作为唯一值匹配。

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

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

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

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

Edit2:我得到它来比较所有三个值,但如果有人对此有想法,0,0,0 问题仍然存在。

{=IFERROR(MATCH(0,COUNTIF(INDIRECT("$F:$F$" & ROW(E2)-1),$A:$A00)*COUNTIF(INDIRECT("$G:$G$" & ROW(E2)-1),$B:$B00)*COUNTIF(INDIRECT("$H:$H$" & ROW(E2)-1),$C:$C00),0),"")}

由于您正在处理 Excel 2007,并且想要 table 个唯一值,我建议 Advanced Filter.

将您的数据设置为 Table

导航到您想要“过滤器”结果的工作表

然后Data=>Advanced Filter

瞧!

如果您有超过三列,但您只想对前三列应用唯一过滤器,则可以使用公式作为过滤条件。

例如:

    A1: Unique Formula
    A2: =COUNTIFS($A:$A7,$A7,$B:$B7,$B7,$C:C7,$C7)=1

您可以将此过滤器的效果可视化,方法是将其输入某个辅助列,与第 7 行中的 table 相邻,然后向下填充 table 的长度.如果你这样做,你可以使用自动过滤器,只过滤 1

瞧!