我想动态联合一些命名范围,同时尽可能避免使用 Google Apps 脚本。命名范围的数量可能会有所不同,因此对它们的任何引用都必须是动态的。例如:
范围
citrics
|柑橘 |数量 |
| -------- | -------------- |
|橙色| 1 |
|柠檬| 2 |
|石灰| 3 |
范围
berries
|浆果|数量 |
| -------- | ------------- |
|蓝莓| 4 |
|覆盆子| 5 |
|草莓| 6 |
通常,只要函数仅引用一个命名范围,使用 INDIRECT 就可以工作。
例如,
=INDIRECT("citrics")
将返回表格citrics
。
现在,在合并范围时,显然唯一有效的方法是使用大括号并单独指定要合并的范围,例如
={INDIRECT("citrics");INDIRECT("berries")}
柠檬酸 | 数量 |
---|---|
橙色 | 1 |
柠檬 | 2 |
石灰 | 3 |
浆果 | 数量 |
蓝莓 | 4 |
覆盆子 | 5 |
草莓 | 6 |
但是,如果我计划改变范围的数量,动态引用它们就变得不可能。我尝试像这样使用 TEXTJOIN
=INDIRECT("{"&TEXTJOIN(";";TRUE;A13:A14)&"}")
,其中 A13:A14
包含值
柠檬酸 |
---|
浆果 |
但我得到的只是
Function INDIRECT parameter 1 value is '{citrics;berries}'. It is not a valid cell/range reference.
令人沮丧的是,即使我尝试重新创建一个公式字符串,该字符串本质上会单独引用命名范围(例如
{INDIRECT("citrics");INDIRECT("berries")}
),就像这样
=INDIRECT("{INDIRECT(" & """" & "citrics" & """" & ");INDIRECT(" & """" & "berries" & """" & ")}")
我仍然收到上面的错误。
这是包含我的尝试的示例电子表格。
如果不使用 Google Apps 脚本就不可能做到这一点吗?