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

Google Sheets如何根据数据验证选中值自动更新对应工作表引用公式

解决方案

方法1:使用INDIRECT函数动态生成工作表引用(最优方案)

由于你的下拉单元格值和工作表名称完全匹配,直接用INDIRECT拼接引用路径即可实现自动适配,公式如下:

=INDEX(INDIRECT("'"&F127&"'!I:I"), MAX(IF(INDIRECT("'"&F127&"'!B:B")=E127, ROW(INDIRECT("'"&F127&"'!B:B")))))

如果你的Excel区域设置使用分号作为参数分隔符,替换为如下写法:

=INDEX(INDIRECT("'"&F127&"'!I:I"); MAX(IF(INDIRECT("'"&F127&"'!B:B")=E127; ROW(INDIRECT("'"&F127&"'!B:B")))))

注意:如果使用旧版Excel(非365/2021版本),需要按Ctrl+Shift+Enter将公式作为数组公式确认生效。

公式说明

  • INDIRECT("'"&F127&"'!I:I")会根据F127选择的城市名,动态生成对应城市工作表的I列引用,额外添加的单引号是为了兼容带特殊字符/空格的工作表名,你当前的城市名无特殊字符也可省略,保留兼容性更好
  • 所有原本写死工作表名的位置都替换为INDIRECT动态生成的引用,切换F127的下拉选项就会自动匹配对应工作表的内容

方法2:修正你原有的IF嵌套写法

你之前写的IF公式报错是因为存在语法错误:缺少参数分隔符、未正确处理IF嵌套层级,修正后的写法如下(适配分号分隔符的版本):

=IF(F127="Budapest";INDEX(Budapest!I:I;MAX(IF(Budapest!B:B=E127;ROW(Budapest!B:B))));IF(F127="Belgrade";INDEX(Belgrade!F:F;MAX(IF(Belgrade!B:B=E127;ROW(Belgrade!B:B))));IF(F127="Bucharest";INDEX(Bucharest!I:I;MAX(IF(Bucharest!B:B=E127;ROW(Bucharest!B:B))))))

旧版Excel同样需要按数组公式快捷键确认生效。

注意事项

  • 你之前的公式里Belgrade引用的是F列,其他城市引用的是I列,如果是手误所有城市都需取I列的值,把Belgrade对应的F:F改成I:I即可
  • 如果使用Excel 365/2021,还可以用XLOOKUP简化公式,无需数组确认,直接回车生效,逻辑和原公式完全一致(适配分号分隔符):
=XLOOKUP(E127;INDIRECT("'"&F127&"'!B:B");INDIRECT("'"&F127&"'!I:I");;0;-1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:15:03