我有一张表,在其中我使用创建了唯一列表
=UNIQUE(IF(Name1="A",Name2,""),FALSE,FALSE)
结果列表是一个溢出数组,顶部有一个空白(用于结果为假),#N/A
底部有一个空白(不确定为什么,但不是很重要)。
然后我想计算唯一列表,同时忽略顶部的空白和#N/A
底部的。到目前为止,我只是使用=COUNTA(J3#)-2
,但是有没有办法过滤计数或过滤唯一函数以删除这两个?
作为参考=Count(J3#)
回报0
,这就是我使用的原因=CountA
我考虑过一个=IFNA
函数,让NA
也变成""
,但不会从计数中删除空格。不过,它可能会简化过滤函数。
答案1
这是一个可以尝试的示例,可能需要根据情况调整范围/单元格引用:
• 单元格中使用的公式D16
=SUM(--(UNIQUE(FILTER(C16:C20,IFNA(C16:C20,"")<>""))<>""))
或者,
=SUM(--(UNIQUE(FILTER(C16:C20,IFERROR((C16:C20,"")<>""))<>""))
与其使用COUNTA()
或ROWS()
函数,不如使用,SUM()
因为即使没有数据,也会SUM()
返回0
,而其余的将返回错误,需要再次使用IFERROR()
函数。
进一步解释:
- 使用
IFNA()
或IFERROR()
函数强制将错误值转换为empty
- 接下来,使用
FILTER()
函数仅获取那些不为空的include
所述函数的参数为IFERROR((C16:C20,"")<>""
返回TRUE
和FALSE
s,FILTER()
函数仅抓取那些TRUE
并返回包含所有重复项的输出。 - 包装在
UNIQUE()
函数内以获取唯一值。 - 最后,在函数内包装,
SUM()
然后检查返回的数组是否为空`
在 OP 的上下文中,公式将是:
=LET(arr, IF(Name1="A",Name2,""), SUM(--(UNIQUE(FILTER(arr, IFERROR(arr,"")<>""))<>""))
如果在 OP 中生成一些模型/样本数据,则上述公式可以得到进一步改进。