2013-07-26 36 views
0

所以我基本上有這種類型的多個電子表格的設置的:通過Google Apps腳本編寫的動態公式

A B C D E F G H I J K L M N O P Q R S 
    1   Lab1  Lab2  Lab3  Averages 
    2 FN LN Lb HW Pa Lb HW Pa Lb HW Pa Lb HW Pa Overall 
    3 ab cd 12 34 56 78 90 01 23 45 67  x y z xyz 
    4 ef gh 89 09 87 76 54 32 18 48 39  x y z xyz 
    5 ij kl 10 29 83 47 31 24 35 49 54  x y z xyz 
    6 Ave Av Av Av Av Av Av Av Av Av Av Av AV AveTot 

前兩列是「第一」,「最後」的名字。 「Lb」,「HW」,&「Pa」只是每個實驗室的類別。其中「x」,「y」,「z」分別是類別的平均值。 「總體」「xyz」是類別平均值的加權總和。 (x,y,& z)它們不一定是相同的重量。即。 「總體」中的「xyz」可能爲25%,25%,50%或任何組合總計達100%。

現在要計算類別的平均值,我需要爲例如名稱「ab cd」,平均值12,78,& 23獲得「x」。對於「y」,爲34,90,& 45。等等。

現在要爲x手動設置公式,我可以這樣做:=AVERAGE(D2,G2,J2)。 但我遇到的問題,試圖通過Apps腳本來做到這一點,是範圍只能連續選擇而不是離散的。 (我可能會誤解)

另請注意,「實驗室」可能更多或更少。另一個維度是,類別可以比所示的三個更多或更少。

因此,這裏是我的問題:如何爲X,Y在公式中的腳本,& Z,使用「實驗室」 &類別獨立地改變從電子表格到電子表格..?

回答

0

我想這個例子可以幫助你:

function test() { 
    var result = getCells("A3,C3"); 
    Logger.log(result); 
} 

function getCells(cellsStr) { 
    var sheet = SpreadsheetApp.openByUrl("Spread Sheet URL") 
    var cellsArray = []; 
    var cells = cellsStr.split(","); 
    for(var index in cells) {  
    var row = sheet.getRange(cells[index]).getValue();  
    cellsArray.push(row); 
    } 
    return cellsArray; 
}; 
相關問題