2014-09-22 40 views
0

如果所有单元格中的值都是数字,我需要检查多个单元格并返回TRUE。 实施例:Excel函数的多个参数

A2,A4, A5,A8,A12,A16 <p> 

目前我写如下公式:

=IF(AND(ISNUMBER(A2),ISNUMBER(A4),ISNUMBER(A5),ISNUMBER(A8),ISNUMBER(A12),ISNUMBER(A16)),"All Numbers","Some not numbers") 

有什么方法来写只有一个ISNUMBER函数的公式,其单元的阵列被传递?

+0

NO。在excel中没有这样的工作表函数。但是,您可以通过VBA程序(宏)创建这样的功能。 – 2014-09-22 05:47:54

+0

谢谢福姆。我们需要将工作表发送给散布在不同位置的技术不熟练的人员,并且由于宏中的支持依赖关系,宁愿采用无宏观解决方案 – user1955215 2014-09-22 06:49:02

+0

如果我将空白单元格计为一个数字,它会影响吗?如果没关系(即你控制输入范围,以便不包含空白单元格),那么有一个解决方案,但你必须通过两次范围。 – Bathsheba 2014-09-22 07:40:14

回答

1

如果数字将永远只能是非零积极:

=IF(INDEX(FREQUENCY((A2,A4,A5,A8,A12,A16),0),2)=COUNTA(A2,A4,A5,A8,A12,A16),"All Numbers","Some not numbers") 

否则:

=IF(SUM(COUNTIF(INDIRECT({"A2","A4","A5","A8","A12","A16"}),{">=0";"<0"}))=COUNTA(INDIRECT({"A2","A4","A5","A8","A12","A16"})),"All Numbers","Some not numbers") 

如果在其上要执行此项检查单元格的范围是固定的,而不是动态的,那么我们就可以缩短这些到:

=IF(INDEX(FREQUENCY((A2,A4,A5,A8,A12,A16),0),2)=6,"All Numbers","Some not numbers") 

或:

=IF(SUM(COUNTIF(INDIRECT({"A2","A4","A5","A8","A12","A16"}),{">=0";"<0"}))=6,"All Numbers","Some not numbers") 

问候

+0

谢谢XOR LX。这完全按照我想要的方式工作。这个要求已经有所改变了,我相信你能帮助我。现在,不是检查单元格是否有数字,而是要求单元格不是空白的(澄清:范围是固定的),那么我使用什么公式?“空白”意味着有一些价值(除空格字符外的字母/数字等)。提前致谢。 – user1955215 2014-09-22 09:55:07

+0

为了进一步阐明,只有所有单元格都有一个值(即非空),公式才会返回TRUE,并且即使一个单元格有空白也应该返回FALSE。 – user1955215 2014-09-22 09:56:45

+0

好的。更改为:= SUM(COUNTIF(INDIRECT({“A2”,“A4”,“A5”,“A8”,“A12”,“A16”}),{“?*”;“> 0”})) = 6 – 2014-09-22 11:21:44

1

如果要检查的细胞是在一个连续的阵列可以用数组公式与isnumber功能:

=ISNUMBER(A2:A5)然后按ctrl+shift+enter而不是仅仅enter。当你再看看单元格的公式应该花括号像{=ISNUMBER(A2:A5)}

包围如果细胞不能在一个连续的数组这是不行的,但是

+0

谢谢Zrethreal,范围不是连续的 – user1955215 2014-09-22 06:47:20

0

好,坦率地说..因为你希望他们在这些单元格输入的数字,为什么不你只是使用数据验证? (可在“数据”选项卡>“数据验证”中找到)。选择小数点,您甚至可以设置最小值到最大值的范围。我个人认为这是对您的情况更为稳健的解决方案,因为用户将无法输入数字以外的值。

0

COUNT功能只计算数字(不是文字或错误值或逻辑值或空白),所以这个公式可以得到同样的结果作为当前的公式具有多种功能ISNUMBER

=IF(COUNT(A2,A4,A5,A8,A12,A16)=6,"All Numbers","Some not numbers")