【问题标题】:Formula to sum certain color values only仅对某些颜色值求和的公式
【发布时间】:2016-10-06 13:09:41
【问题描述】:

在 Excel 中,将所有单元格添加到特定颜色列中的公式是什么?

【问题讨论】:

  • 带有+ 符号?例如,如果所需的单元格是 a1、a3 和 a10,则执行=a1+a3+a10
  • 你不能用公式,那么是什么让颜色不同?它是由条件格式设置的吗?然后,使用使颜色改变您在公式中使用的内容来获得正确的单元格。
  • 您将需要一个 UDF 来完成此操作,因为所有 Excel 公式都对单元格颜色“视而不见”。

标签: excel excel-formula colors


【解决方案1】:

您应该使用 Ralph 所述的 UDF。 这是如何使用它及其代码: 打开你的工作表 按 ALT + F11 打开 VBA 编辑器并导航到插入 > 模块。 在编辑器中粘贴“SumByColor”函数:

Function SumByColor(CellColor As Range, rRange As Range)
Dim cSum As Long
Dim ColIndex As Integer
ColIndex = CellColor.Interior.ColorIndex
For Each c1 in rRange
If c1.Interior.ColorIndex = ColorIndex Then
cSum = WorksheetFunction.SUM(c1, cSum)
End If
Next c1
SumByColor = cSum
End Function

现在您以这种方式输入单元格 SumByColor 函数 =SumByColor(cell_with_background_color_that_you_wish_sum, Range_to_be_summed_up)

【讨论】:

    【解决方案2】:

    没有公式可以让您获得单元格的颜色,但您确实可以通过两种方式提取单元格的颜色。


    首先,有几个用户定义的函数

    Function BackgroundColor(MyCell As Range)
      BackgroundColor = MyCell.Interior.ColorIndex
    End Function
    
    Function TextColor(MyCell As Range)
      TextColor = MyCell.Font.Color
    End Function
    

    并以这种方式使用它们

    =TEXTCOLOR(A1)
    =BACKGROUNDCOLOR(A1)
    

    其次,使用旧的和已弃用的 get.cell 函数,遗憾的是不能直接调用,而是通过命名范围。

    因此,创建一个命名范围,将其命名为 TEXTCOLOR 并将其值设置为引用 GET.CELL(43,INDIRECT("rc",FALSE))

    所以现在,您只需复制完整的列(以便随身携带颜色)并将每个单元格的内容替换为此命名范围 =TEXTCOLOR 的引用。


    将所有颜色提取为数字后,您就可以在 countifsumif 公式中使用它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多