
我正在尝试创建一个 Excel 函数,用于计算一系列(可能合并的)单元格中唯一条目的数量。UNIQUE 函数返回合并单元格的两个值,其中一个为零。这似乎很容易,只需计算不等于零的单元格即可。但是,以下所有公式都会导致通用的“此公式存在问题”错误:
COUNTIF(UNIQUE(A2:P2,TRUE)<>0,TRUE)
COUNTIF(UNIQUE(A2:P2,TRUE),"<>0")
COUNTIF(NOT(UNIQUE(A2:P2,TRUE)=0),TRUE)
特别令人恼火的是,如果我将 的第一个参数放在COUNTIF
另一个单元格中(例如R2
),并引用溢出范围(即COUNTIF(R2#,TRUE)
),则所有这 3 个公式都可以正常工作。这里到底发生了什么?
答案1
错误本身并没有什么问题自然现象任何IFs family
功能,按照COUNTIFS()
或COUNTIF()
功能第一个标准/参数要采取的状态range
,而不是array
这里,UNIQUE()
是returning an array
。尝试使用SUM()
函数。
COUNTIF()
语法按照MSFT
文档:阅读此处
而是使用SUM()
如下方法:
=SUM(N(UNIQUE(A2:P2,TRUE)<>0))
或者,
=SUM(--(UNIQUE(A2:P2,1)<>0))
N()
也可以使用双一元--
或者在使用之前排除空白,UNIQUE()
可以使用TOROW()
=COUNTA(UNIQUE(TOROW(A2:P2,3),1))
在MSFT
文档中提到了第一个标准范围可以包含数组这意味着数组可以用作放置在不同列中的范围或可引用的辅助列,它并没有说它可以直接在函数中使用,其中有区别,为了解释,这里有一个 .gif