2017-04-13 51 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工作表中的任何更改,腳本可能會在工作狀態下工作。

相關問題