Excel - SUMIF 下一个单元格颜色是

Excel - SUMIF next cell color is

如果 C5:C10 背景颜色为红色,我需要对单元格 B5:B10 中的值求和。

假设 C5 和 C8 是红色,我需要单元格 B5+B8 的 SUM。

这些是我用过的模块:http://www.exceltrick.com/how_to/sum-cells-based-on-background-color/

这不起作用:=SUMIF(C5:C10;"="&GetCellColor(C5:C10)="="&GetCellColor(A1);B5:B10)

提前致谢!

编辑:

获取单元格颜色

Function GetCellColor(xlRange As Range)
Dim indRow, indColumn As Long
Dim arResults()

Application.Volatile

If xlRange Is Nothing Then
    Set xlRange = Application.ThisCell
End If

If xlRange.Count > 1 Then
  ReDim arResults(1 To xlRange.Rows.Count, 1 To xlRange.Columns.Count)
   For indRow = 1 To xlRange.Rows.Count
     For indColumn = 1 To xlRange.Columns.Count
       arResults(indRow, indColumn) = xlRange(indRow, indColumn).Interior.Color
     Next
   Next
 GetCellColor = arResults
Else
 GetCellColor = xlRange.Interior.Color
End If
End Function

如果您的颜色在任何连续的垂直范围内且具有前一列中的值,并且您只是在寻找红色,这将起作用:

Function CountAdjacent(colorRange As Range) As Long

Dim clr As Variant
Dim countValue As Long

For Each clr In colorRange
    If clr.Interior.color = vbRed Then
        countValue = Application.WorksheetFunction.Sum(clr.Offset(0, -1).Value, countValue)
    End If
Next clr
CountAdjacent = countValue

End Function

像任何其他公式一样在单元格中键入 =CountAdjacent(yourColorRange)