有时您需要导出最小(或最大)

范围内的值,除非最小(或最大)值为零。例如,您可能具有一系列值,例如\ {0,3,1,4,4,2}。在这种情况下,最小值为零,但您真正想要返回的值为1。

Excel中没有内部函数可以返回此处规定的值。但是,您可以创建一个可以解决问题的公式。假设要分析的值的范围在C4:C8中,则以下公式将返回最低的非零值:

=IF(MIN(C4:C8)=0,SMALL(C4:C8,COUNTIF(C4:C8,"=0")+1),MIN(C4:C8))

该公式使用MIN函数确定该范围内的最小值是否为零。如果是,则使用SMALL函数得出最小值(不包括零)。 (COUNTIF函数返回该范围内的零个数,因此告诉SMALL从范围中选择哪个项目。)

对公式的较小更改可用于返回范围为

的最大非零数。

=IF(MAX(C4:C8)=0,LARGE(C4:C8,COUNTIF(C4:C8,"=0")+1),MAX(C4:C8))

这些公式适用于任何范围,除非范围完全由零组成。在这种情况下,#NUM!返回错误。

如果您在Office 365中使用Excel 2019或Excel,则可以使用新的MINIFS函数。此示例将以这种方式使用:

=MINIFS(C4:C8,C4:C8,"<>"&0)

有关MINIFS功能的更多信息,请参见以下Microsoft Office支持页面:

https://support.office.com/en-gb/article/minifs-function-6ca1ddaa-079b-4e74-80cc-72eef32e6599

如果您更喜欢使用数组公式,则可以使公式更短。此版本返回最低的非零值:

=MIN(IF(C4:C8=0,9^9,C4:C8))

请记住使用Ctrl + Shift + Enter进行输入。如果该范围内的所有值均为0,则也会产生问题。在这种情况下,它将返回387420489,即9 ^ 9。 (如果该范围内的所有值都大于387420489,则也将返回该值。)

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9750)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: