Automation
Google Workspace+GAS 自動化零基礎入門
用 Google Apps Script 把 Gmail、雲端硬碟、表單、試算表串成自動流程。賴家榮零基礎入門:看懂工具、拆解流程、做出第一個自動化。附完整簡報下載。
閱讀知識
你一定用過 =SUM() 或 =AVERAGE()。這篇要教你做一個全新的函式 =GEMINI(),在儲存格裡直接呼叫 AI,把提示丟進去就得到答案,還能像一般公式一樣往下拉套用整欄。
自訂函式的好處是門檻極低:寫好一次,全表格的人都能像用內建公式一樣使用。不論是翻譯、摘要、情緒分析還是簡單分類,只要改提示文字就能換任務。
很多人會 AI,但不會寫程式,看到 Apps Script 就卻步。自訂函式把 AI 包成一個公式,使用的人完全不用碰程式碼,只要在儲存格打 =GEMINI() 就好,跟用 SUM 一樣直覺,特別適合分享給不懂程式的同事。
而且公式會自動跟著資料走。你把 =GEMINI(A2) 往下拉,每一列都會用對應的內容去問 AI,資料一改公式就重算。相較於寫一支要手動執行的程式,公式的即時感讓整份表格像活的一樣,改到哪算到哪。
先想好你要 AI 做什麼:翻譯、摘要、還是判斷正負評價。這會決定你在 =GEMINI() 裡寫的提示。準備一欄範例文字,等一下就能直接測試公式效果。
動作在 Google 試算表點「擴充功能」→「Apps Script」,開啟寫程式的分頁。
常見地雷自訂函式必須寫在跟這份試算表綁定的專案裡,不要用獨立的 Apps Script 專案,否則儲存格叫不到。
動作點左側齒輪「專案設定」,在「指令碼屬性」新增 GEMINI_API_KEY,填入你的金鑰後儲存。
常見地雷金鑰絕對不要直接寫進公式或程式碼字串裡,否則任何看得到表格的人都可能複製走。
動作在程式碼區貼上下方第一段 askGemini,負責實際跟 Gemini 溝通。
常見地雷自訂函式有執行時間限制,提示盡量精簡,太長的請求可能會逾時回傳錯誤。
動作接著貼上第二段,重點是那個 function GEMINI(prompt),它就是儲存格會呼叫的函式,內部直接呼叫 askGemini。
常見地雷函式名稱 GEMINI 必須全大寫且不能跟內建函式撞名,這個名稱是安全的。
動作按儲存後切回試算表,在任一儲存格輸入 =GEMINI("把 hello 翻成中文") 按 Enter。
常見地雷第一次使用自訂函式若沒觸發授權,可先手動執行一次任何函式完成授權,公式才會正常運作。
動作在有文字的欄位旁輸入 =GEMINI("翻成中文:"&A2),讓公式讀取 A2 的內容去問 AI。
常見地雷用 & 把提示和儲存格接起來時,記得提示和內容之間留一個冒號或空白,AI 才好理解。
動作選取剛才的公式儲存格,抓住右下角小方塊往下拉,整欄就會依各自的資料算出結果。
常見地雷同時算很多列會一次送出大量請求,容易碰到限流;資料多時建議分段拉、或改用會手動執行的程式版本。
下面第一段是共用的 askGemini,跟其他篇完全相同;第二段的重點是 GEMINI 這個自訂函式,它讓儲存格能直接呼叫 AI。自訂函式的規則是:接收參數、回傳一個值,這個值就會顯示在儲存格裡。
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();
}
/**
* 在儲存格直接呼叫 Gemini。
* @param {string} prompt 你要問 AI 的提示文字
* @return {string} AI 的回答
* @customfunction
*/
function GEMINI(prompt) {
if (!prompt) return '';
return askGemini(prompt);
}
這個流程和內建公式一模一樣:你給輸入、函式算出輸出、顯示在儲存格。差別只在 GEMINI 這個函式背後接的是 AI 而不是數學運算。理解這點,你就能自由設計自己的公式。
自訂函式是你自己用 Apps Script 寫的公式,用法跟內建的 SUM、AVERAGE 完全一樣,在儲存格打上等號加函式名稱就能用。差別在於背後的邏輯由你決定。這篇的 GEMINI 函式背後接的是 AI,所以你能在儲存格裡直接請 AI 幫忙做事,這是內建函式辦不到的。
自訂函式呼叫外部 AI 需要一點時間,尤其一次拉很多列時,每一列都要等 AI 回覆,所以會看到載入中的提示。這是正常現象。如果等太久或出現逾時,把提示寫短一點、一次少算幾列,或改用會手動一次跑完的程式版本,速度會穩定許多。
有可能。AI 的回答本來就帶有一些變化,同樣的提示偶爾會給不同措辭。如果你需要固定結果,算好之後可以複製那一欄,再用選擇性貼上只貼「值」,把文字定住。這樣資料就不會因為重新計算而改變,適合要交出去的正式報表。
可以,用 & 把它們接起來即可,例如 =GEMINI("比較這兩句:"&A2&" 和 "&B2)。你把需要的儲存格內容都串進提示,AI 就會一起參考。串接時記得在內容之間加上說明文字或標點,讓 AI 分得清楚哪段是什麼,回答才會準確。
絕對不要把金鑰寫在公式或程式碼字串裡。這篇的做法是把金鑰存在指令碼屬性,程式用 PropertiesService 讀取,公式裡完全看不到金鑰。這樣即使把試算表分享給別人,對方也拿不到你的金鑰,安全性有保障。
先檢查函式名稱有沒有拼對、專案是不是綁在這份試算表上,還有金鑰屬性名稱是否正確。另一個常見原因是還沒完成授權,可以在編輯器手動執行任一函式,跟著畫面授權一次。都確認後回到試算表重新輸入公式,通常就會恢復正常。
一次算一千列會在短時間送出上千個 AI 請求,很容易碰到免費額度的每分鐘上限而報錯。建議分段處理,例如一次拉一兩百列,等算完再繼續。如果真的要處理很大量的資料,改用會逐列且加上間隔的程式版本,會比自訂函式穩定。
可以。模型名稱寫在 askGemini 的網址裡,也就是 gemini-2.5-flash 那一段。想換模型時改這個名稱即可,但要填正確、且該模型支援 generateContent。flash 版本速度快、額度友善,適合大量使用,一般情況不需要更換就很夠用。
可以,關鍵在提示。在 =GEMINI() 裡明確寫出要求,例如「這句話是正評還是負評,只回正評或負評兩個字」,AI 就會照做。把輸出範圍講清楚,公式跑出來的結果才整齊,方便後面用其他公式統計或篩選。
可以。只要同事有這份試算表的存取權,他們在儲存格打 =GEMINI() 就能直接用,完全不用碰程式碼。金鑰是綁在專案上的,同事共用你設定好的金鑰,也算進你的額度。如果用量大,建議留意額度,或請團隊評估付費方案。
把 AI 變成一個人人會用的公式,是讓團隊快速上手 AI 最溫柔的方式。如果你想更系統地把這類自動化帶進團隊,讓專業講師規劃一套完整的課程會更有效率。
想讓團隊用 AI+自動化把重複工作交給流程?賴家榮提供 Workspace/GAS/Gemini 企業內訓與大學課程。
預約授課・免費諮詢本文為賴家榮 AI 教學中心原創教學內容;想讓團隊學會用 AI,歡迎看AI 課程或預約授課 →
代表圖片來源:圖片來源:Pexels