2017-04-13 54 views
1

是否有任何方法可将以下公式作为动态数组公式进行设置?如何将导入范围设置为动态函数

=query( {IMPORTRANGE(B2,"Filter!B:C"); importrange(B3,"Filter!B:C"); importrange(B4,"Filter!B:C")},"Where Col2 <>''")

如果我的投入将是3个电子表格键然后IMPORTRANGE应执行3次,如果我的输入是5个电子表格键然后IMPORTRANGE应执行5次。

任何帮助将非常有益。

+0

你的配方对我来说很合适。要添加其他密钥,您需要将它们添加到公式中。 –

+0

嗨,最大,有没有一种方式,进口范围将充当动态功能。 – Jyotiranjan

回答

0

这个问题的答案是否定的,你不能。

importrange以某种方式已经是arrayformula,因为它返回数组,因此它不能将一组\ keys作为输入。

解决方法

您可以结合公式为字符串,字符串得到这样的:

"=query({importrange(...);importrange(...)...},"select...")"

,然后使用脚本将字符串转换成公式。


例如,使ini片,在importranges的山口A使列表:在COL B

="importrange("&B1&",""Filter!B:C"")" 
="importrange("&B2&",""Filter!B:C"")" 
="importrange("&B3&",""Filter!B:C"")" 
and so on 

穿戴密钥。

然后进行过滤公式与分号加入他们:

= join(";", filter (A:A, A:A <> "")

等你拿未来式的部分:

"importrange(B2,"Filter!B:C");importrange(B3,"Filter!B:C");..."

,然后串联式的另一部分。

最后一步是使用脚本来转换此文本公式并将其作为实际公式粘贴到目标工作表。如果您使用onEdit触发器检查ini工作表中的任何更改,脚本可能会在工作状态下工作。

相关问题