导入多个范围时串联或连接动态数组

时间:2018-11-24 01:06:37

标签: arrays google-apps-script google-sheets google-sheets-formula importrange

我有一组指向其他工作表的超链接,这些超链接会随着添加或减少新链接而改变。我希望编写一个从所有这些工作表中导入相同范围的函数。这些工作表都基于相同的模板。

我可以使用以下方法创建动态范围:

C1 ="B1:B"&counta(B1:B)

然后我在这里将所有与此公式结合在一起:

="{importrange("&join(", """&"Sheet1!A:A"&"""); importrange(",indirect(C1))&", """&"Sheet1!A:A"&""")}"

输出显示我需要的公式,但是它将不计算并显示为字符串。我尝试在创建的公式上使用间接,但是这也不起作用,因为它指出间接需要有效范围。

{importrange(https://docs.google.com/spreadsheets/d/19S08r/, "Sheet1!A:A"); importrange(https://docs.google.com/spreadsheets/d/19S08r/, "Sheet1!A:A"); importrange(https://docs.google.com/spreadsheets/d/1uxdty/, "Sheet1!A:A"); importrange(https://docs.google.com/spreadsheets/d/19S08r/, "Sheet1!A:A")}

1 个答案:

答案 0 :(得分:1)

Google表格内置函数无法将TEXT值转换为公式。这只能通过使用Google Apps脚本或Google Sheets API来完成。

使用的方法是setFormula / setFormulaR1C1返回一个公式,而setFormulas / setFormulaR1C1返回一个公式数组。

注意:IMPORTRANGE要求第一个参数是TEXT值,因此,如果直接包含URL而不使用单元格引用,则该URL应该用引号引起来。