首頁/AI 講義/數位工具・自動化

數位工具・自動化 · Workspace+GAS+Gemini約 12 分鐘Automation

定時讓 Gemini 生成試算表數據摘要

定時讓 Gemini 生成試算表數據摘要 — 賴家榮 AI 教學

Overview這篇教你做什麼

數據躺在試算表裡,但主管想看的是一段白話摘要:這週賣得如何、哪個項目成長、有沒有異常。這篇要教你讓 Apps Script 定時把數據交給 Gemini,自動寫成一段文字摘要並填回 Sheets。

Key Takeaways

  • 用 SpreadsheetApp 讀取數據並整理成文字
  • 把整理後的數字交給 Gemini 生成白話摘要
  • 把摘要寫回試算表的指定儲存格
  • 設定定時觸發,讓它每天或每週自動執行
  • 金鑰用 PropertiesService 保管,安全不外露
  • 全程雲端執行,不用開電腦也會自己跑

核心一樣是 askGemini 這個小函式;主流程負責把一堆數字轉成一段清楚的提示,再把 AI 寫好的摘要放回表格。設好觸發器後,這件事就完全不用你動手了。

Why為什麼要這樣做

把數字變成一句人話,是最耗神的一步。同一份銷售數據,會計看得懂,但主管要的是「本週營收較上週成長一成,其中 A 產品貢獻最大」這種摘要。Gemini 擅長把結構化數字轉成流暢說明,正好補上這一段。

更關鍵的是定時。人會忘記、會請假,但觸發器不會。設定每週一早上八點自動跑,摘要就準時出現在表格裡,團隊一上班就能看到最新回顧。把重複又固定的動作交給排程,你只需要偶爾檢查結果對不對。

Prepare開始前要準備什麼

Checklist

  • 一個可以使用 Google 試算表的 Google 帳號
  • 一把 Gemini API 金鑰,到 ai.google.dev 免費申請
  • 一份含有數據的試算表,例如每日銷售或流量統計

先確認你的數據排列整齊:第一列是欄位標題,下面每列一筆資料。整齊的資料比較好轉成提示,Gemini 也比較容易讀懂。準備好之後,就可以開始寫程式了。

Steps一步一步實作

1打開指令碼編輯器

動作在 Google 試算表點「擴充功能」→「Apps Script」開啟編輯器。

常見地雷要用綁在這份試算表的專案,這樣程式才能直接抓到資料。

2存好 Gemini 金鑰

動作在「專案設定」的「指令碼屬性」新增 GEMINI_API_KEY,填入金鑰後儲存。

常見地雷屬性名稱要跟程式裡讀取的名稱完全一致,否則會抓不到金鑰。

3貼上 askGemini 函式

動作在程式碼區貼上下方第一段 askGemini。

常見地雷這段每篇都一樣,若你已在其他專案寫過,也要在這個專案再貼一次。

4貼上主流程 generateReport

動作貼上第二段主流程,它會讀取數據、組成提示、請 Gemini 寫摘要並填回。

常見地雷把程式裡的資料範圍和寫回位置改成符合你自己的表格。

5先手動執行一次

動作在上方選擇 generateReport,按「執行」,完成授權後檢查摘要有沒有正確寫進儲存格。

常見地雷第一次會要求授權存取試算表與外部網路,按允許即可,只需一次。

6建立定時觸發器

動作點左側時鐘圖示「觸發條件」,新增觸發條件,函式選 generateReport,事件來源選「時間驅動」,設定成每天或每週執行。

常見地雷時間驅動的觸發只能設一個大概的時段(例如上午 8 到 9 點),無法精準到分鐘,這是正常限制。

7確認自動執行結果

動作隔天或隔週回來看摘要有沒有自動更新,也可以在「執行項目」頁面查看每次執行的紀錄。

常見地雷如果執行紀錄出現錯誤,多半是額度限制或資料格式改變,點進去看錯誤訊息就能對症下藥。

下面第一段是共用的 askGemini;第二段主流程用 SpreadsheetApp 讀取數據、拼成一段清楚的提示、請 Gemini 生成摘要,再寫回指定儲存格。搭配觸發器,這支程式就會自己定時運作。

function askGemini(prompt) {
  const key = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
  const url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=' + key;
  const payload = { contents: [{ parts: [{ text: prompt }] }] };
  const res = UrlFetchApp.fetch(url, { method:'post', contentType:'application/json', payload: JSON.stringify(payload), muteHttpExceptions:true });
  return JSON.parse(res.getContentText()).candidates[0].content.parts[0].text.trim();
}
function generateReport() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const dataSheet = ss.getSheetByName('數據');
  const reportSheet = ss.getSheetByName('報表');
  // 讀取整個資料範圍,包含標題列
  const values = dataSheet.getDataRange().getValues();
  // 把二維陣列轉成純文字表格,方便交給 AI
  let table = '';
  values.forEach(function(row) {
    table += row.join('\t') + '\n';
  });
  const prompt = '你是數據分析助理。下面是一份表格資料,第一列是欄位名稱。' +
    '請用繁體中文寫一段約 150 字的摘要,說明整體表現、成長或下降的重點、以及最值得注意的一項。' +
    '語氣專業易懂,直接給摘要,不要條列、不要多餘開場白。\n\n' + table;
  const summary = askGemini(prompt);
  const today = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd');
  // 每次把日期與摘要新增到報表工作表的最後一列
  reportSheet.appendRow([today, summary]);
}

Flow整個流程長這樣

從觸發到摘要落地
1觸發器在設定時間喚醒程式
2讀取數據工作表的所有資料
3把數字整理成文字表格
4組出提示送給 Gemini 生成摘要
5取回摘要文字
6把日期與摘要寫回報表工作表

這個流程跟前面程式碼一一對應:觸發、讀取、整理、送出、取回、寫回。你不用每天記得執行,觸發器會準時把整條流程跑一遍,摘要就這樣自動長出來。

Tips幾個實用小技巧

FAQ常見問題

常見問題 FAQ

定時觸發可以設到幾點幾分嗎?

時間驅動的觸發器只能設定一個大概的時段,例如每天上午 8 點到 9 點之間,無法精準指定到某一分鐘。Google 會在你選的時段內找空檔執行。如果需要更精準的時間,可以把觸發頻率設密一點,再在程式裡用目前時間判斷是否真的要執行,達到近似的效果。

設好觸發器後我需要開著電腦嗎?

完全不用。觸發器是在 Google 的雲端伺服器上執行的,跟你的電腦有沒有開機無關。設定好之後,就算你關機、出國、放假,程式一樣會在指定時間自動跑。這正是排程自動化最方便的地方,把固定的工作交給雲端,人就解放了。

為什麼摘要沒有自動更新?

先到編輯器左側的「執行項目」頁面看有沒有執行紀錄,以及紀錄裡有沒有錯誤。常見原因有三個:觸發器沒建成功、金鑰額度用完、或資料工作表名稱被改過導致程式抓不到。點進錯誤訊息通常能看到具體原因,對照修正後再手動跑一次確認即可。

數據很多會不會超過限制?

資料非常多時,一次全部塞進提示可能會太長。建議在程式裡先做基本統計,例如算出總計、平均、成長率等關鍵數字,只把這些摘要性的數字交給 Gemini,而不是把幾千列原始資料整包送出。這樣既省時間、又不容易逾時,AI 也更能抓到重點。

可以每週而不是每天執行嗎?

可以。建立觸發器時,時間驅動的頻率有很多選項,包含每分鐘、每小時、每天、每週、每月。想要每週一份就選每週,再挑一個星期幾。你也可以同時建立多個觸發器,例如每天一份小結、每週一份總覽,各自呼叫不同的函式,非常有彈性。

摘要格式想固定該怎麼做?

關鍵在提示。在提示裡把你要的格式講清楚,例如指定字數、要不要分段、語氣是正式還是輕鬆、能不能用條列。講得越具體,Gemini 越能穩定照做。如果還是有變化,可以在提示裡附上一個範例摘要,讓 AI 照著同樣的樣子寫,結果就會很一致。

會不會不小心蓋掉舊的摘要?

只要用 appendRow,就是把新摘要加到最後一列,完全不會動到之前的紀錄。這篇的做法就是每次附加一列,包含日期和摘要,等於自動建立一份歷史檔案。如果你反而是用固定儲存格寫入,那才會被覆蓋,依需求選對寫法就好。

Gemini 會不會把數字算錯?

AI 擅長把數字轉成文字說明,但它不是計算機,遇到複雜運算偶爾會出錯。安全的做法是把重要的計算交給試算表公式或程式先算好,再把正確的結果交給 Gemini 去描述。這樣 AI 只負責寫成通順的話,數字的正確性由你這邊把關,兩者分工最可靠。

執行失敗會通知我嗎?

Google 對於觸發器執行失敗,預設會寄一封摘要通知到你的信箱,不過不是每次都即時。你也可以在觸發器設定裡調整通知頻率。更主動的做法是在程式裡加上錯誤處理,遇到問題時用 MailApp 寄信給自己,或把錯誤記到工作表,這樣就能第一時間掌握狀況。

這套只能做銷售摘要嗎?

不是。任何整齊的表格數據都能套用,例如網站流量、客服工單量、庫存變化、專案進度。你只要換掉資料來源和提示內容,告訴 Gemini 這是什麼數據、想看什麼重點,它就會寫出對應的摘要。這篇用銷售當例子,換個情境改改提示就能重複利用。

CTA想更進一步嗎

當數據摘要能自己準時出現,團隊的每週回顧就從幾小時縮成幾分鐘。如果你想把整套排程與 AI 摘要導入公司流程,讓專業講師帶著規劃會走得更順。

想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Workspace/GAS/Gemini 企業內訓與大學課程。

預約授課・免費諮詢

本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →

代表圖片來源:圖片來源:Pexels

Your turn

把 AI,變成團隊真的用得上的能力。

不論你在哪個產業,賴家榮都能帶團隊把 AI 學到真的用得上。

預約授課・免費諮詢