0

我怎样才能使用 JOIN (也许是 VLOOKUP?过滤器?)来制作一个 IMPORTRANGES 列表,从而产生类似的结果{IMPORTRANGE(C3,$E$1); IMPORTRANGE(C4,$E$1); IMPORTRANGE(C5,$E$1); IMPORTRANGE...}

目前,在谷歌工作表中,我有一个如下所示的公式:=SORT(ARRAYFORMULA({IMPORTRANGE(C3,$E$1);IMPORTRANGE(C4,$E$1);IMPORTRANGE(C5,$E$1);IMPORTRANGE..."电子表格网址在 Col C 中,范围(对于每个导入的工作表都相同)在 E1 中。

当我只有大约十几个要导入的电子表格并且它们都已经存在时,全部输入都很好。但是现在我想导入更多的电子表格(我听说 50 个导入范围的限制不再适用)而且它们还不存在。如果我保持原样,每次我向 C 列添加另一个电子表格 URL 时,我还必须进入并编辑我的 =SORT 公式。

然后我找到了这个线程,Fill ArrayFormula with dynamic ImportRange,它有一个建议的答案列出为: ="=sort(ARRAYFORMULA({"&JOIN(";",ArrayFormula("IMPORTRANGE("""&VLOOKUP(FILTER(G2:G20,G2:G20<>""),Sheet3!$A$2:$B,2,0)&""","""&G1&"!A2:B"")"))&"}),1,True,2,True)" 那里的 JOIN 看起来很有趣(我最近才了解 JOIN)但我不理解所有的语法(比如“”)和我也无法访问原始电子表格以查看引用指向的内容。

所以,我正在寻求如何将 C3、C4、C5 等输入到 JOIN 中的帮助——不知道 VLOOKUP 如何帮助我——以及是否有人知道为什么有这么多 ="&=&" “”贯穿整个建议的公式......

4

1 回答 1

0

以下解决方案之一可能会满足您的需求。第一个是你要求的。第二个是可能会结合多个IMPORTRANGE公式的那个。

解决方案 1 ="="&ArrayFormula(REGEXREPLACE(QUERY(UNIQUE(TRANSPOSE(SPLIT(CONCATENATE(IF(E3:E="","","IMPORTRANGE("&E3:E&", $E$1)"&":")),":"))),,9^99),"\)(.*?)I","\), I"))

解决方案 2 ="=QUERY({"&ArrayFormula(REGEXREPLACE(QUERY(UNIQUE(TRANSPOSE(SPLIT(CONCATENATE(IF(E3:E="","","IMPORTRANGE("&E3:E&", $E$1)"&":")),":"))),,9^99),"\)(.*?)I","\); I")&"},""Select Col1 where Col1<>''"",0)")

然后,您只需复制单元格,选择目标单元格并将“作为值粘贴”到公式栏中

您可以在此处查看工作表(只需复制一份以供使用)。

于 2019-01-06T02:22:40.487 回答