如何使用JOIN(可能还包括VLOOKUP?FILTER?)列出重要列表,从而产生类似{IMPORTRANGE(C3,$E$1); IMPORTRANGE(C4,$E$1); IMPORTRANGE(C5,$E$1); IMPORTRANGE...}
的内容?
当前,在google工作表中,我有一个公式如下:=SORT(ARRAYFORMULA({IMPORTRANGE(C3,$E$1);IMPORTRANGE(C4,$E$1);IMPORTRANGE(C5,$E$1);IMPORTRANGE..."
,其中电子表格网址位于C列,范围(每个导入的工作表都相同)位于E1。
当我只有大约十二个电子表格要导入并且都已经存在时,将其全部键入即可。但是现在我想导入更多电子表格(听说50个importranges的限制不再适用)并且它们还不存在。如果我保持原样,那么每次我在C列中添加另一个电子表格网址时,我还必须进入并编辑= 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如何帮助我-以及是否有人知道为什么有这么多=“&在整个建议的公式中=&“”“ ...
答案 0 :(得分: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)")
然后,您只需复制该单元格,选择目标单元格,然后将其“粘贴为值” 放入编辑栏。
您可以看到正在使用的工作表HERE(只需复制一下即可使用)。