优秀的编程知识分享平台

网站首页 > 技术文章 正文

按颜色求和汇总,你是哪种青年?(按颜色求和汇总,你是哪种青年人)

nanyue 2024-08-23 18:28:10 技术文章 5 ℃

经常见到有小伙伴习惯使用颜色来标记不同特征的数据,就像下面这个表格:

现在需要对添加颜色的单元格进行求和,该怎么办呢?


走你青年这样做:

1、按Ctrl+F调出查找对话框

2、单击【选项】→【格式】→【从单元格选取格式】

3、查找全部

4、然后按Ctrl+A选中全部带有颜色的单元格

5、名称框中输入:颜色 ,按回车

6、输入公式:=SUM(颜色)


牛B青年这样做:

1、右键单击工作表标签,查看代码

2、【插入】→【模块】

3、粘贴格式代码

4、输入自定义函数

=SumColorIf(C2:H11,B14,C2:H11)

自定义函数代码:

Function SumColorIf(Rng As Range, Criteria As Range, Optional SumRng As Range, Optional iType As Integer = 1)

Dim CriteriaRange As Range, SumRange As Range

Dim cell As Range

'iType=1表示按单元格背景色统计,否则按字体颜色统计,默认值是1

Application.Volatile '声明为易失性函数

'求和条件区域,当取整行或整列时,就返回已使用区域内的单元格区域

Set CriteriaRange = Intersect(Rng, Rng.Parent.UsedRange)

'如果没有输入求和区域,则使用条件区域作为求和区域

If IsMissing(SumRng) Then

Set SumRange = CriteriaRange

Else

'否则就调整求和区域,使之与条件区域大小一致

Set SumRange = SumRng.Range("A1").Resize(CriteriaRange.Rows.Count, CriteriaRange.Columns.Count)

End If

For Each cell In SumRange

i = i + 1

If iType = 1 Then

If CriteriaRange.Cells(i).Interior.ColorIndex = Criteria.Cells(1).Interior.ColorIndex Then

SumColorIf = SumColorIf + cell.Value

End If

Else

If CriteriaRange.Cells(i).Font.ColorIndex = Criteria.Cells(1).Font.ColorIndex Then

SumColorIf = SumColorIf + cell.Value

End If

End If

Next

End Function


佛系青年这样做:

1、先搞清楚添加颜色的规则是什么?

2、根据添加颜色的规则来写公式。

例如,添加颜色的规则是高于120的数据,就可以使用

=SUMIF(C2:H11,">120")

如果添加颜色的规则是高于平均值的数据,就可以使用

=SUMIF(C2:H11,">"&AVERAGE(C2:H11))


老祝说,添加颜色肯定是有规则和标准的,只要找到这个标准,就能化繁为简了。如果是闭着眼睛随便填的,拉出去暴打一顿,OK了。


图文作者:程习彬

编辑整理:老祝

Tags:

最近发表
标签列表