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

如何用INDIRECT函数从单元格提取年份替换公式中的工作表名?

解决Google Sheets中INDIRECT引用动态年份工作表的引号嵌套问题

原公式与修改方案

1. "A"工作表的公式修改

原公式:

=ArrayFormula(sumproduct(('2023'!$J$17:J="W")*('2023'!K17:K="")*NOT('2023'!$L$17:$L="S")*('2023'!$F$17:F)))

修改后(从A191提取年份):

=ArrayFormula(SUMPRODUCT(
  INDIRECT("'"&A191&"'!$J$17:$J")="W",
  INDIRECT("'"&A191&"'!$K$17:$K")="",
  NOT(INDIRECT("'"&A191&"'!$L$17:$L")="S"),
  INDIRECT("'"&A191&"'!$F$17:$F")
))

2. "Backlog"工作表D232单元格的公式修改

原公式(注:原公式中NOT(...)与后续区域间缺少*,已一并修正):

=if(today()>=A232,ArrayFormula(sumproduct(('2023'!$J$17:$J="W")*('2023'!$K$17:$K<$A232)*NOT('2023'!$L$17:$L="S")('2023'!$F$17:$F))),"")

修改后(从A232提取年份):

=IF(TODAY()>=A232,
  ArrayFormula(SUMPRODUCT(
    INDIRECT("'"&A232&"'!$J$17:$J")="W",
    INDIRECT("'"&A232&"'!$K$17:$K")<A232,
    NOT(INDIRECT("'"&A232&"'!$L$17:$L")="S"),
    INDIRECT("'"&A232&"'!$F$17:$F")
  )),
  ""
)

核心解决思路

  • 引号嵌套处理:通过"'"&A191&"'!$J$17:$J"的格式拼接字符串,其中'"'表示字符串内的单引号,结合单元格引用和区域地址,生成INDIRECT可识别的完整工作表区域路径,直接解决嵌套引号报错问题。
  • SUMPRODUCT参数优化:用逗号分隔多个条件替代原公式的*运算,可读性更强,同时避免数组运算中可能出现的类型转换问题。
  • 前提条件:确保A191/A232单元格存储的是纯四位年份(文本或数字格式均可),INDIRECT会自动解析为对应的工作表名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 17:42:25