Excel中根据单元格颜色匹配值并返回列标题的公式求助
根据单元格填充色返回对应分组的解决方案
方法1:VBA自定义函数(全Excel版本通用)
Excel内置公式无法直接读取单元格填充色,需通过自定义函数实现颜色匹配:
- 按
Alt + F11打开VBA编辑器 - 右键左侧工作簿名称,选择「插入」→「模块」
- 在模块窗口粘贴以下代码:
Function GetColorGroup(cell As Range, colorMap As Range) As String Dim cellColor As Long Dim rowNum As Integer cellColor = cell.Interior.Color ' 遍历颜色映射表查找匹配项 For rowNum = 1 To colorMap.Rows.Count If colorMap.Cells(rowNum, 1).Interior.Color = cellColor Then GetColorGroup = colorMap.Cells(rowNum, 2).Value Exit Function End If Next rowNum ' 未找到匹配颜色时返回NotFind GetColorGroup = "NotFind" End Function
- 返回Excel界面,在H2单元格输入公式:
=GetColorGroup(G2, $A$2:$B$4)- 其中
$A$2:$B$4为颜色映射区域(A列存放带目标颜色的单元格,B列对应分组名称,比如A2是红色单元格,B2填Group3)
- 其中
方法2:GET.CELL宏表函数(需启用宏)
不想写VBA的话,可通过宏表函数获取颜色编码,再结合VLOOKUP匹配:
- 点击「公式」选项卡→「定义名称」,名称设为
CellColor,引用位置输入:=GET.CELL(63, Sheet1!G2)(将Sheet1替换为你的工作表名称) - 准备颜色映射表:C列存放颜色编码值(比如在C2输入
=CellColor,选中红色单元格后复制数值),D列对应分组名称(D2填Group3) - 在H2输入公式:
=IFERROR(VLOOKUP(CellColor, $C$2:$D$4, 2, FALSE), "NotFind")
注意事项
- 两种方法均需工作簿启用宏,保存时选择
.xlsm格式 - GET.CELL返回的是Excel内部RGB颜色编码,比如纯红色对应数值
255
内容的提问来源于stack exchange,提问作者pedro
相关产品推荐
相关产品推荐

