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

Google Sheets如何根据单元格填充色匹配日期返回D列对应数值

Excel按单元格填充色匹配行首日期值实现方案
  • 前置说明:Excel原生公式无法直接读取单元格填充色属性,需要通过VBA自定义函数实现需求,操作步骤如下:
  1. 打开VBA编辑器
    按下Alt + F11快捷键唤出VBA编辑器,在左侧工程列表右键点击当前工作簿,选择「插入」-「模块」。
  2. 粘贴自定义函数代码
    在弹出的模块编辑窗口中粘贴如下代码:
' 自定义函数:输入行号,返回当前行首个粉色/绿色填充单元格对应第3行的数值
Function GetAirValue(inputRow As Long) As Variant
    Dim ws As Worksheet
    Dim scanRange As Range
    Dim cell As Range
    ' 绑定当前工作表,可修改为指定工作表名,比如Set ws = Sheets("Sheet1")
    Set ws = ActiveSheet
    ' 定义当前行扫描范围,可根据实际表格列范围调整,比如Set scanRange = ws.Range("E" & inputRow & ":Z" & inputRow)
    Set scanRange = Intersect(ws.Rows(inputRow), ws.UsedRange)
    
    For Each cell In scanRange
        ' 跳过D列本身避免循环引用
        If cell.Column <> 4 Then
            ' 颜色编码可根据实际填充色调整,3为默认粉色,4为默认绿色
            If cell.Interior.ColorIndex = 3 Or cell.Interior.ColorIndex = 4 Then
                GetAirValue = ws.Cells(3, cell.Column).Value
                Exit Function
            End If
        End If
    Next cell
    ' 无符合条件的填充单元格返回空值
    GetAirValue = ""
End Function
  1. D列调用函数
    在D列需要生效的单元格输入公式=GetAirValue(ROW()),按回车即可生效。以你给出的示例为例:T19单元格着色后,D19会自动返回T3单元格的数值4,和需求匹配。
  • 补充说明:
    • 如果修改填充色后数值没有自动更新,按F9手动触发重算即可。如果需要自动刷新,可以在对应工作表的代码窗口粘贴如下代码:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Me.Calculate
    End Sub
    
    • 如果你的填充色不是默认的粉色/绿色,可以选中对应着色单元格,在VBA编辑器的立即窗口(按Ctrl + G唤出)输入?ActiveCell.Interior.ColorIndex回车即可获取对应颜色编码,替换上面代码里的3和4即可。
    • 如果一行存在多个着色单元格,现有逻辑会返回最左侧着色单元格对应的第3行数值,如有其他逻辑可调整遍历顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:15:02