2015-05-06 63 views
0

我使用Google SpreadSheet附加組件製作Google Analytics報告。我的問題是,對於每個查詢,此附加組件創建一個不同的工作表。我經常有大約50張不同的表格,數據必須彙編成一張表格。例如:如何在Google SpreadSheets上動態引用多個工作表?

我可能有3張名爲:「有機的數據」,「直接數據」和「其他數據」

每一薄板上有一組不同的數據,我想編譯成一個單一的表第四張稱爲「報告」。該表在第一列中將包含來自「有機數據」表的數據,來自「直接數據」表的第二列數據以及來自「其他數據」表的第三列數據。

我這樣做的方式是通過逐個引用單元格。因此,在「Report」工作表中,我將寫入= Organic Data!B4,然後拖動以填充該列的其他單元格,然後我會爲其他表單填充「Report」表單的其他列。

問題是,正如我所說的,我經常有超過50張不同的紙張,並且引用它們會變得很難。

我想動態地做到這一點。獲取單元格上的表單名稱並使用它來引用單元格。例如:

在 「報告」 片材:

A1 = 「有機數據」,B1 = 「直接數據」,C1 = 「其他數據」

在細胞 「報告A2!」 我已經嘗試寫入= CONCAT(「=」,A1,「!」,「B4」)希望在這個單元格中獲得單元格「Organic Data!B4」的值,但是我得到字符串「= Organic Data! 。B4,和在「Organic數據」片上的細胞的不值

I`ve製成的定製式來解決這個問題:

function referenceSheet(sheetName, cellInput) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var cell = "" 
    var cell = sheetName+'!'+cellInput; 

    var value = ss.getRange(cell).getValue(); 

    return value; 
} 

它工作得很好。在我上面的例子來獲取細胞「有機數據B4!」到單元格的值,我需要寫上下面的「報告A2!」「報告A2!」:

"=referenceSheet(A1, cell("address",B4))" 

,它將返回單元格「Organic Data!B4」的值。

我確實有這個自定義公式的一些問題。主要是自定義公式不會刷新變化,所以如果我改變「有機數據!B4」的值,「報告!A2」不會改變。

我想知道是否有一個與我的自定義公式類似的本機公式?

如果不是,那麼當我更改其他單元格的日期時,使自定義公式更新的最佳方法是什麼?

非常感謝!

+1

,如果你正在尋找一個本地或內置式你應該張貼在谷歌產品論壇對於電子表格:https://productforums.google.com/forum/?nomobile=true#!categories/docs/spreadsheets。那裏有一些非常沉重的打擊者寫公式給我頭痛。 – ScampMichael

+0

如果您最終不得不使用自定義公式,可以將其放在像[onEdit()](https://developers.google.com/apps-script/guides/triggers/#onedit)這樣的觸發器中,所以每次更改任何單元格時都會調用它。 – Andy

回答

1

我在Google論壇上發佈了相同的問題,並得到了一個很好的答案。

有一種天然的配方呼叫= INDIRECT

對於我爲例它的工作原理是這樣的:

=INDIRECT(CONCATENATE(A$1,"!",cell("address",$B4)),true) 
+0

也可以查看查詢或數組公式,以便使用單個公式輕鬆將工作表拖到列中。您甚至可以使用importRange爲不同的電子表格執行此操作 –

相關問題