测试不是公式填充的单元格与来自不同单元格的数据

时间:2018-02-10 02:46:56

标签: excel vba

我有一个电子表格,自动填充B列以等于A列中的单元格.C列将是A列中的单元格,一行向下,但如果A列中的单元格位于同一行和A列中下一行是相同的,它将是两行向下的A列。使用此公式:=IF(A5=A6,A7,A6)

现在,当它们只包含公式时,它会在其中一个单元格中打印数据。我不明白为什么。下面的右栏,有2个靛蓝, 是一个问题的例子,在没有填充单元格的情况下使用'empty',它们有一个空白的选择列表。

.. A ....... B .... ç

2红......红。橙

3橙黄橙色

4黄黄绿

5绿绿蓝

6 blue .. blue ... 0

7空。 0 .... indigo

8空.. 0 ....靛蓝

9 indigo    indigo violet

我不介意显示0,但是第3列向上,右边的单元格正在打印靛蓝,不应该。上面的列工作正常。 注意:C列中的单元格,紫罗兰色,具有略微不同的公式,如果是 第一个单元格与下面的单元格匹配,它将其设置为列c中的第一个数据单元格,否则设置为列A =if(a8=a9,a2,a9)中的下一个单元格 我需要看到的是为了减少人为错误的风险,要么是零,要么是 单元格中没有显示任何显示第c列中第一个靛蓝的单元格。

1 个答案:

答案 0 :(得分:1)

您的公式正常运作。 IF 函数评估条件并根据评估返回TrueFalse语句。您的条件是评估A5=A6,即当前单元格等于上面的单元格。

第9行BlueEmpty不相等,因此您获得0,因为这是空单元格A10返回

第10行EmptyEmpty相等,因此A12返回indigo

第11行EmptyIndigo不相等,因此A12返回indigo

而是更改您的测试条件以处理blank单元格尝试:

B栏(摆脱零)

=IF(A5="","",A5)

C栏

尝试以下内容的变体:

=IF(OR(A5="",A6=""), "", IF(A5=A6,A7,A6))

此部分:OR(A5="",A6="")正在处理空白比较的所有组合,即当前单元格为空白,上面的单元格为空白,两者均为空白。

使用 ISBLANK 功能为empty个单元格切换出来:

B栏

 =IF(ISBLANK(A5),"",A5)

C栏

=IF(OR(ISBLANK(A5),ISBLANK(A6)), "", IF(A5=A6,A7,A6))

如果您想以不同方式处理空白/空白案例,请考虑使用其他逻辑运算符,例如例如AND运算符在AND(ISBLANK(A5),ISBLANK(A6))的测试中,如果只有空白的话。在上面的示例中,OR运算符将覆盖此内容,因为我正在考虑上面的当前或单元格中是否出现空白/空白。

相关问题