IF()多个单元格等于“TRUE”,只取一个范围内的数字值

时间:2017-12-11 22:12:32

标签: excel vba excel-vba

我正在尝试编写一个公式,只从一行中获取数字格式,以便使用IF公式,如果所有单元格彼此相等,则表示“No”的值。

在此处查看我的文件片段:

enter image description here

我遇到的问题是公式是采用空白单元格(没有格式)并将它们计算在等式中,所以我的所有值都是“是”。如何让我的公式只计算每行中包含数字的单元格?我已经尝试了IFNUMBER(),IFEMPTY()等...但我不确定我是否正确使用这些,例如嵌入我的公式。我需要忽略每行中的空白。

注意:我只需要使用数字值取单元格。我已经清除了没有数字值的行的值的内容。

以下是我目前的等式:

=IFERROR(IF(AND(ROUND($E2,3)=ROUND($F2,3),ROUND($F2,3)=ROUND($G2,3),ROUND($G2,3)=ROUND($H2,3),ROUND($H2,3)=ROUND($I2,3),ROUND($I2,3)=ROUND($J2,3),ROUND($J2,3)=ROUND($K2,3),ROUND($K2,3)=ROUND($L2,3),ROUND($L2,3)=ROUND($M2,3),ROUND($M2,3)=ROUND($N2,3)),"No","Yes"),"")

注意:这是空白并计算它们(如上所述)。如果列中的数字不同,则应生成“是”,如果没有数字差异,则应生成“否”。目前,它始终生成“是”,因为它正在计算列中的空白。

我也对vba解决方案持开放态度,我有以下代码,但我不知道如何设置每一行的范围只查找数字格式:

这是我的vba代码:

Dim arng As Range
Dim aworkrng As Range
Dim brng As Range
Dim bworkrng As Range
On Error Resume Next
Set aworkrng = Range("O2:O1550")
Set bworkrng = Range("E2:N1550")
Set brng = Range("E2:N2")
On Error Resume Next

For Each arng In aworkrng

        If Not IsEmpty(brng.Value) Then

 arng.Formula = _
    "=IFERROR(IF(AND(ROUND(RC5,3)=ROUND(RC6,3),ROUND(RC6,3)=ROUND(RC7,3),ROUND(RC7,3)=ROUND(RC8,3),ROUND(RC8,3)=ROUND(RC9,3),ROUND(RC9,3)=ROUND(RC10,3),ROUND(RC10,3)=ROUND(RC11,3),ROUND(RC11,3)=ROUND(RC12,3),ROUND(RC12,3)=ROUND(RC13,3),ROUND(RC13,3)=ROUND(RC14,3)),""No"",""Yes""),"""")"
Range("O3").Select

End If

Next

如果有人能帮助我,我会非常感激!

1 个答案:

答案 0 :(得分:1)

尝试:

=IF(MIN(E2:N2)=MAX(E2:N2),"No","Yes")