EXCEL中用自定义函数按颜色求和
本期主要分享在 EXCEL 中用自定义函数实现按颜色求和以及按颜色条件求和。如上图所示,可以按对应颜色求和,也可以实现按对应颜色以及条件的求和。(本期教程以上图为实例)
1、插入模块:打开excel,按Alt+F11打开VBA窗口。鼠标右键单击空白处插入模块。(如下图所示)。
2、编写按颜色求和的代码:在模块1输入如下代码:
Function YS(颜色 As Range, 区域 As Range)
Dim x As Range
s = 颜色.Interior.Color
For Each x In 区域
If x.Interior.Color = s Then
n = n + x.Value
End If
Next
YS = n
End Function
2.1 输入自定义公式:在C10单元格输入刚刚的自定义公式“=YS(B10,$B$2:$J$8)”
2.2 函数解释: YS(颜色对象,求和区域) 即计算在B2:J8区域内颜色与B11单元格相同的所有数字的和。
3、按对应颜色的条件求和: 上面介绍的是在选定区域内按颜色求和,下面接着介绍按条件求和;即在选定区域内(B2:J8),颜色为E10单元格颜色且名字为E10内容(567w)所在行的数字总和。(如下图所示)
3.1 在模块中新建(SUMC)函数:在模块中输入如下代码
Function SUMC(对象 As Range, 区域 As Range, 类型 As Integer)
Dim x As Range
m = 类型
s = 对象.Interior.Color
a = 对象.Value
i = 区域.Row
j = 区域.Row + 区域.Rows.Count - 1
c = 区域.Column + 区域.Columns.Count - 1
If m = 0 Then
For k = i To j
If Cells(k, 区域.Column) = a Then
b = k
k = j
End If
Next
For Each x In Range(Cells(b, 区域.Column), Cells(b, c))
If x.Interior.Color = s Then
n = n + x.Value
End If
Next
SUMC = n
End If
If m = 1 Then
For Each x In 区域
If x.Interior.Color = s Then
n = n + x.Value
End If
Next
SUMC = n
End If
End Function
3.2 函数解释:SUM(对象,求和区域,求和类型)对象包含颜色对象和条件内容的对象(B10),求和区域为(B2:J8)。求和类型为1,0两个值。(如下图所示)
3.2.1 输入“0”则既要满足(B10)单元格的颜色和类容后再对应行求和。输入“1”则只对区域内满足颜色条件的单元格求和。(如下图所示。)
由于时间限制,本次介绍就分享到这里。如有疑问可留言讨论!