2013-11-23 48 views
0

我有一個電子表格,其中包含一個矩陣,用於計算學生有多少次與特定輔導員上課。用於計數Matrix的Google Apps腳本

基質正常工作與此公式:

=ARRAYFORMULA(SUM(IF(TERM4!$B$6:$B$2398=B$1,IF(TERM4!$C$6:$C$2398=$A2,1,IF(TERM4!$D$6:$D$2398=$A2,1,FALSE()))),FALSE())) 

然而由於學生的數量/輔導基質是7000個細胞,下降相當減緩工作片。

有沒有更好的方法來做到這一點。我可以運行谷歌應用程序腳本來計算觸發器上的矩陣(例如每週一次)來計算矩陣,因此公式不會減慢表格的速度。

我也想公式返回一個空白而不是0,如果結果爲假。

感謝您的幫助!

回答

0

是的,它可以用氣體做到這一點。唯一有點複雜的部分是,如果你的腳本超過5分鐘,它不會處理所有的行。爲了避免這種情況,請按塊(例如,每次100個)處理它,並使用scriptProperties來記住上次處理的電子表格和行。每個觸發器都會盡可能地進行處理,直到處理完所有電子表格和行。

+0

謝謝齊格...我是相當新的JavaScript,主要與圖書館的腳本工作...什麼樣的措辭最好找到一個腳本,可能會做這樣的事情,我怎麼能得到該數組上班。 – pdrops

+0

我不知道你是否會找到一個腳本來做到這一點。首先嚐試通過假設您可以一次處理整個陣列(不超時)。你會感覺到處理需要多長時間。如果處理需要很長時間,你將不得不「按塊」來完成,但都需要寫一點算法,但第一個算法更容易。 –