如何在数组公式中使用Round()?

时间:2019-04-29 16:16:57

标签: arrays excel excel-formula

我正在尝试在范围 中将值四舍五入到百分位后计算唯一值的数量。

这是我用来计算范围内唯一值数量的公式:

=SUMPRODUCT(1/COUNTIF($EZ6:$FD6,$EZ6:$FD6&""))

这就是我试图计算舍入后范围内唯一值的数量:

=SUMPRODUCT(1/COUNTIF(ROUND($EZ6:$FD6,2),ROUND($EZ6:$FD6,2)&""))

此公式会产生错误,并且不会求值。

问题不在末尾添加"",因为此公式也会产生错误并且无法计算:

=SUMPRODUCT(1/COUNTIF(ROUND($EZ6:$FD6,2),ROUND($EZ6:$FD6,2)))

通过产生错误,我的意思是,出现一个消息框,指出“此公式有问题...”

1 个答案:

答案 0 :(得分:1)

不幸的是,Countif仅适用于范围,不适用于数组-引入Round函数后,您隐式使用数组。

我建议使用频率方法来获取唯一值:

=SUM(--(FREQUENCY(IF(EZ6:FD6<>"",ROUND(EZ6:FD6,2)),ROUND(EZ6:FD6,2))>0))

这是基于标准公式see documentation的-唯一的问题是,如果将Round函数应用于空白单元格,则会得到零,这可能会给您额外的唯一值,因此是If语句。 / p>

必须使用 Ctrl Shift Enter

作为数组公式输入