带有命名范围谷歌表格的动态间接

问题描述 投票:0回答:1

我想动态联合一些命名范围,同时尽可能避免使用 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 脚本就不可能做到这一点吗?

google-sheets named-ranges
1个回答
0
投票

您可以尝试:

=reduce(tocol(;1);A13:A14;lambda(a;c;vstack(a;indirect(c))))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.