You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中如何结合Vlookup、Countif按单元格颜色和查找值自动计数

需求说明

制作风险地图时需实现双条件单元格计数:同时匹配指定风险分类、对应单元格填充色的单元格总数。例:示例中E3单元格计算结果应为2,即旁侧数据表内信用风险分类下的红色高亮风险项共2个。现有上百条风险数据每月更新,需实现自动统计避免重复手动计数,此前尝试适配VBA函数、组合Excel自带函数均未成功。
示例图:风险地图统计场景

实现方案

Excel无原生支持按填充色+单元格值双条件计数的内置函数,直接用以下自定义VBA函数即可实现需求:

  • 操作步骤
    1. 按Alt+F11打开VBA编辑器,右键点击当前工作簿名称,依次选择「插入」-「模块」
    2. 将下方代码粘贴到弹出的模块代码窗口,保存文件为.xlsm启用宏格式即可正常使用函数
Function CountCateColor(riskCateCol As Range, targetCate As String, allRiskRng As Range, colorSampleCell As Range) As Long
    Application.Volatile
    Dim cel As Range
    CountCateColor = 0
    For Each cel In allRiskRng
        ' 校验同行分类匹配+单元格填充色匹配
        If riskCateCol.Cells(cel.Row - riskCateCol.Row + 1, 1).Value = targetCate _
        And cel.Interior.Color = colorSampleCell.Interior.Color Then
            CountCateColor = CountCateColor + 1
        End If
    Next
End Function
  • 函数使用方法
    回到工作表界面,在需要输出统计结果的单元格输入公式即可,参数说明:
    • 第1参数:风险分类所在的整列数据范围
    • 第2参数:需要匹配的目标风险分类值
    • 第3参数:所有填了风险等级/风险项的单元格范围
    • 第4参数:作为颜色匹配样本的单元格(比如要统计红色项就选红色填充的单元格当样本)
      对应示例场景,如果风险分类在A2:A200,风险项在B2:B200,E3要统计「信用风险」分类下和D3(红色填充单元格)颜色一致的风险项数量,公式写为:
      =CountCateColor(A2:A200,"信用风险",B2:B200,D3)
      公式下拉、右拉即可批量适配不同分类、不同风险等级颜色的统计需求。

注意:代码中已经加了Application.Volatile设为易失性函数,修改单元格值、按F9都会触发重算,如果数据量超过1000行觉得卡顿,删掉这行代码即可,需要更新统计结果时手动按F9就行。

内容的提问来源于stack exchange,提问作者elia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:18:30