在這個單元,我會用一個簡單的案例,讓你體驗一下自動化的威力。
假設我是一位財務人員,
我有一張 excel sheet 母表,裡面包含了各個國家的資料。
如圖:
而我需要把母表資料根據國家分裝到不同的子表。
如下圖:
如果我的資料只有五、六個國家,
手動做也不會太久。
但如果有幾十個國家的時候呢?
我們需要程式自動化!
請你跟我這樣做:
步驟1. 把我這個範例複製一份到你自己的 Google Drive,
你才有完整的編輯權限。
步驟2. 打開 Apps Script 介面
步驟3. 複製以下程式碼,完整貼到 Apps Script 的程式碼編輯區。
(請把原有的程式碼完全覆蓋取代掉)
(謹慎起見,可參考 《零基礎快速入門:GenAI 搭配 Google Apps Script 的工作自動化寶典》Chapter 3-1 沒看這篇之前,千萬不要執行程式 的要點,檢查一下程式碼。)
function copyDataToCountrySheets() {
// Open the active spreadsheet and select the "Raw Data" sheet
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var rawDataSheet = spreadsheet.getSheetByName("Raw Data");
// Get all the data from the "Raw Data" sheet
var data = rawDataSheet.getDataRange().getValues();
// Loop through each row (starting from row 2 to skip the headers)
for (var i = 1; i < data.length; i++) {
var country = data[i][0]; // Assuming country is in the first column (A)
var amount = data[i][1]; // Assuming amount is in the second column (B)
var date = data[i][2]; // Assuming date is in the third column (C)
// Get or create the sheet for this country
var countrySheet = spreadsheet.getSheetByName(country);
if (!countrySheet) {
countrySheet = spreadsheet.insertSheet(country);
// Add headers to the new sheet
countrySheet.appendRow(["Country", "Amount", "Date"]);
}
// Append the row to the country's sheet
countrySheet.appendRow([country, amount, date]);
}
}
步驟4. 儲存,執行。
程式開始執行後,請趕快回到 Google Sheets 的介面。
不然你就會錯過自動化的表演😆
不過第一次執行,
會需要經過一連串的步驟,
這也是系統在提醒你這個程式碼的權限有哪些:
步驟5. 回到 Google Sheets 畫面一邊喝著咖啡,
一邊看著不同國家的分頁一一長出來,
一切全自動完成。
在基本功能之外,
我們還能繼續實現「自動把不同國家的資料寄出給不同的收件人」,
不過在看進一步範例之前,
我們先來聊聊,
要怎麼好好地產生程式碼。
如果你一路有跟著教學走到這一個單元,
關於「執行」程式碼這件事我們已經會了。
可是我們還是不會寫程式啊,
自動化流程最關鍵的程式碼要從哪裡來呢?
我們下一單元就來聊聊這個技巧。