2016-12-24 83 views
0

我已經通過搜索,但我找不到解決方案,但我相信它應該在這裏。也許,我用來搜索的關鍵字不正確。從更新到多個電子表格導入特定數據

問題:

我想導入(捕獲)數據是指區域A從名爲「新數據」電子表格表。表格每2個工作日更新一次。

https://docs.google.com/spreadsheets/d/1WRFvZ5XXpf06WPgC70KRtGi5_hmGKZXFiFYcW806_uk/edit?usp=drivesdk

,並添加這些新行到電子表格名爲區域A已經有它自己的數據。

https://docs.google.com/spreadsheets/d/1c_SBGjUNOr2Oi2tpCVlmD0e1x1Ov52khJYN5jcm8Mf8/edit?usp=drivesdk

我的嘗試:

IMPORTRANGE功能工作不錯,但還不夠。我必須打開Region A Spreadsheet並在表格末尾寫入該函數,然後將結果複製粘貼到6個區域的所有Spreadsheet文檔中,如示例中(在現實生活中大約爲50)。然後在2天內從「新數據」表中獲取renewe數據並複製它。

有沒有辦法應用腳本來添加行(從新數據到區域表)來解決問題?

謝謝!

更新2016年12月26日:請參考下面我的意見,我解決不了的一個問題

+0

謝謝你提前 –

回答

0

這是一個有點不清楚,但它聽起來像是你怎麼查詢數據爲每個區域,因此對於區域A嘗試:

=query(IMPORTRANGE("1WRFvZ5XXpf06WPgC70KRtGi5_hmGKZXFiFYcW806_uk","Sheet Name!A1:D"),"where Col1 contains 'Region A'") 

只是改變表名!上述

編輯#2

根據意見要求不添加行:

function regionA() { 
    // Data Sheet 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var dataSheet = ss.getSheets()[0]; 
    var data = dataSheet.getDataRange().getValues(); 

    //Code for Region A 
    var regionAId = "" 
    var regionA = "Region A"; 
    var regionAdata = SpreadsheetApp.openById(regionAId).getSheets()[0]; 
    var column = regionAdata.getRange('A2:A'); 
    var values = column.getValues(); 
    var ct = 1; 
    while (values[ct] && values[ct][0] != "") { 
    ct++; 
    } 

    for (var i=0; i < data.length; i++) { 
    if (data[i][0] == regionA){ 
     regionAdata.getRange(ct+2,1,1,4).setValues([data[i].slice(0, 4)]); 
     ct++ 
    } 
    } 
} 

編輯#1

追加行

根據您的意見你可以在你的newData文件中使用這個腳本而不是你的報告文件。

function myFunction() { 
    // Data Sheet 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var dataSheet = ss.getSheets()[0]; 
    var data = dataSheet.getDataRange().getValues(); 

    //You can change these for each Region 
    var regionAId = "SPREADSHEET KEY for RegionA" 
    var regionA = "Region A"; 
    var regionAdata = SpreadsheetApp.openById(regionAId); 
    var regionBId = "SPREADSHEET KEY for RegionB" 
    var regionB = "Region B"; 
    var regionBdata = SpreadsheetApp.openById(regionBId); 
    //add the other regions 

    for (var i=0; i < data.length; i++) { 
    if (data[i][0] == regionA){ 
     regionAdata.appendRow(data[i]) 
    }  
    if (data[i][0] == regionB){ 
     regionBdata.appendRow(data[i]) 
    }  
    //add the other regions 
    } 
} 

它並不是那麼幹淨,因爲我很快就做到了,但按照模式添加其他區域,一切都將一次完成。

+0

我試着解釋更好。比方說,我有50個電子表格,每個地區有自己的舊數據和一個有新數據的電子表格。我每週3次在電子表格中放置和重寫新數據。 如果我使用查詢&導入範圍,它會從「新數據」根據地區獲取當前數據,但是: 1)我需要複製粘貼(以便能夠編輯l)2)我需要能夠導入範圍再次出現在新數據電子表格中的新數據。 因此,當新數據替換爲新數據電子表格等時,我需要再導入結果+導入範圍。 謝謝 –

+0

好吧請在我上面編輯的答案中嘗試腳本。 – utphx

+0

Works如果將腳本插入到所有電子表格列表中,則工作正常。最後的語氣:是否可以在所有列表上一次運行腳本? –

相關問題