我可以使用 Excel 单元格的背景颜色作为公式中的条件吗?

我可以使用 Excel 单元格的背景颜色作为公式中的条件吗?

正如我在标题中所说,我可以使用 Excel 单元格的背景颜色或格式作为公式中的条件吗?

例如:我有一个数字和名称网格,如果我想让单元格采用“红色”格式或“绿色”格式,我会手动选择。我还想有一个计数器来显示我有多少个“绿色”和“红色”单元格。

有可能吗?你能想到其他方法来实现类似的效果吗?

答案1

您需要创建一个具有任意名称的命名引用,引用如下:

名称:CellColor,参考:=GET.CELL(38,'Sheet1'!$A17)

“GET.CELL(38,“ 是获取带有数字值的背景颜色。

然后将该值放入另一个单元格中:

=CellColor

尽管 CellColor 是您的名字,但您给出的任何名称都是如此。在我的例子中,我将其放在 B17 单元格中。

然后,您可以使用下面的公式检查条件。我将其设置为 D17。

=IF(B17=2,0,C17)

这意味着如果 A17 是浅灰色背景,则获取 D17 的值为 0 或获取 C17 的值。


我刚刚从这个精彩的解释视频中发现了这一点:

https://www.youtube.com/watch?v=WeUrO7YENSg

虽然有点复杂,但确实有效。

答案2

回答您提出的问题:不。

如果您手动设置单元格填充颜色,则需要 VBA 将单元格填充作为公式的输入进行评估。这需要编程,而不仅仅是编写 Excel 单元格公式。

如果您使用条件格式来设置单元格填充颜色,那么可以,您可以使用与条件格式规则相同的逻辑来进一步处理单元格以进行求和或计数。查看 Sumifs() 和 Countifs()。

答案3

是的,您可以在公式中使用单元格背景颜色。

现在,我选择下一个“如何使用公式格式化单元格”

由于您没有写下以红色和绿色格式化的具体条件,所以我想向您展示如何根据其数据或其他单元格值用颜色填充单元格或单元格范围。

=OR(A2="NY",A2="Moscow",A2="New Delhi")

=AND(A1>1000,B1<500)

=AND(A2>NOW(),A2<=(NOW()+20))

=If(and(A2>=100, A2<=500))

注意: 在上面的例子中,我使用了 A 列。可以测试这些值来格式化其他列,但在这种情况下,您需要先选择“两者”或“所有列”,然后应用公式。

现在,我想解决另一部分“如何设置颜色计数器”。

您可以使用下面编写的 VBA 代码根据背景颜色对单元格进行计数。

 Function CountByColour(rColor As Range, rRange As Range, Optional SUM As Boolean)

 Dim rCell As Range
 Dim lCol As Long
 Dim vResult

  lCol = rColor.Interior.ColorIndex

   If SUM = True Then

    For Each rCell In rRange

     If rCell.Interior.ColorIndex = lCol Then
vResult = WorksheetFunction.SUM(rCell, vResult)
   End If

   Next rCell

Else

  For Each rCell In rRange

   If rCell.Interior.ColorIndex = lCol Then
vResult = 1 + vResult
   End If

 Next rCell

 End If

 CountByColour = vResult        
 End Function

注意:使用 VBA 编辑器将此代码复制并粘贴为 MODULE,并像这样编写公式以使用该函数。

=CountByColour(A2,B2:J6,FALSE)其中 A2 是样本单元格,B2:J6 是要计算 A2 等颜色的范围。

笔记,在我将此代码发布到这里之前,我已经对其进行了测试。

希望这对你有帮助。

相关内容