Google Sheets:如何通过RANDBETWEEN动态引用随机工作表?
解决Google表格随机引用工作表填充字段的问题
直接用INDIRECT拼接完整的工作表引用字符串即可,核心是把动态生成的数字和固定的工作表名前缀/后缀组合成合法的单元格引用格式。
直接使用公式(每次刷新自动换工作表)
=FILTER(INDIRECT("'Story "&RANDBETWEEN(1,10)&"'!2:2"), INDIRECT("'Story "&RANDBETWEEN(1,10)&"'!2:2")<>"")
- 把
RANDBETWEEN(1,10)里的1和10改成你的实际工作表编号范围(比如你有5个Story工作表,就写1,5) - 单引号
'是必须的,因为你的工作表名包含空格(Story 1),Google Sheets要求带空格的工作表名必须用单引号包裹
优化:固定随机工作表编号(避免频繁刷新变动)
如果不想每次编辑表格都切换工作表,可以先把随机编号存到一个单元格(比如A1):
# 在A1单元格输入 =RANDBETWEEN(1,10) # 在目标单元格输入 =FILTER(INDIRECT("'Story "&A1&"'!2:2"), INDIRECT("'Story "&A1&"'!2:2")<>"")
这样只有手动刷新A1(或表格触发全局刷新)时才会切换引用的工作表。
为什么之前的INDIRECT失效?
你之前的问题应该是没把工作表名的单引号和单元格引用格式拼接完整。INDIRECT需要接收完整的字符串形式的单元格引用,比如'Story 3'!2:2,而不是零散的部分拼接,所以必须把'Story 、随机数字、'!2:2这三部分用&连接成完整字符串,才能让INDIRECT正确解析。
内容的提问来源于stack exchange,提问作者beaconbouncer
相关产品推荐
相关产品推荐

