求Excel公式:根据Q/V/W/X/Y/Z列颜色判断写入Colour列
Excel判断指定列单元格是否含颜色的实现方案
一、手动填充颜色的情况
Excel没有内置公式能直接读取手动填充的单元格颜色,得靠VBA自定义函数解决:
- 按下
Alt + F11打开VBA编辑器 - 右键点击左侧的工作簿名称,选择「插入」→「模块」
- 把下面的代码粘贴到模块窗口里:
Function HasColoredCell(ParamArray cells() As Variant) As String Dim cell As Variant For Each cell In cells If cell.Interior.ColorIndex <> xlColorIndexNone Then HasColoredCell = "Yes" Exit Function End If Next cell HasColoredCell = "No" End Function
- 回到工作表,在Colour列的对应行(比如第2行)输入公式:
=HasColoredCell(Q2,V2,W2,X2,Y2,Z2)
下拉填充就能批量处理所有行。
二、条件格式设置的颜色情况
如果单元格颜色是通过条件格式生成的,可以用GET.CELL函数配合辅助列实现:
- 新增一个辅助列(比如AA列),在AA2单元格输入:
=GET.CELL(63,Q2)+GET.CELL(63,V2)+GET.CELL(63,W2)+GET.CELL(63,X2)+GET.CELL(63,Y2)+GET.CELL(63,Z2)
注:
GET.CELL(63,单元格)会返回该单元格条件格式的颜色索引,无颜色时返回0,只要总和大于0就说明有带颜色的单元格。
- 在Colour列的对应单元格输入:
=IF(AA2>0,"Yes","No")
下拉填充即可完成批量判断。
注意点
- 使用
GET.CELL时,部分Excel版本需要按Ctrl + Shift + Enter作为数组公式输入 - 用VBA自定义函数的话,工作簿要保存为
.xlsm格式(启用宏的工作簿),否则下次打开函数会失效
内容的提问来源于stack exchange,提问作者Ulhas Guttikar
相关产品推荐
相关产品推荐

