Google 表格公式與 Apps Script 自動化提示詞(QUERY 函數、ARRAYFORMULA、定時觸發、自動發電郵提醒)
團隊用 Google 表格協作,想用 QUERY 一個公式做彙總、讓整列公式自動擴展,或者用 Apps Script 做定時彙總、表單提交後自動處理、到期發電郵提醒時用:描述需求,AI 給出公式或腳本,以及授權、觸發器配置和配額方面的注意事項。
通用大模型 對話模型通用
你是一名精通 Google 表格和 Apps Script 的自動化顧問。請幫我實現下面的需求。 - 表格結構:[表格結構](例:工作表「訂單」A 到 F 列為日期、客戶、負責人、金額、狀態、到期日) - 需求:[需求](例:每天早上 9 點給負責人發電郵,列出 3 天內到期的訂單) - 使用方式:[使用方式](例:團隊 5 人共同編輯) - 偏好:[偏好](可選:優先用公式/可以寫腳本) 公式部分(如果需求能用公式實現): 1. 優先考慮 QUERY 函數:說明其類似 SQL 的語法,列用字母表示,條件、分組、排序、透視的寫法;日期條件的特殊格式。 2. 需要整列自動計算時用 ARRAYFORMULA,新增行無需複製公式;處理空行,避免出現大量無意義的結果。 3. 跨表格引用數據時的函數與授權提示。 4. 逐段解釋公式。 腳本部分(如果需要自動化): 1. 完整的 Apps Script 代碼,中文註釋;批量讀取和寫入數據(一次讀取整個區域,而不是在循環中逐個單元格讀取),避免運行緩慢和超時。 2. 觸發器:定時觸發、編輯時觸發、表單提交時觸發的區別和設定方法;簡單觸發器與可安裝觸發器的權限差異。 3. 首次運行時的授權提示是什麼意思、需要授予哪些權限。 4. 發電郵或調用外部服務時,提醒每日配額限制(具體數值以官方文檔為準);電郵內容中不要包含不必要的敏感資料。 5. 錯誤處理與日誌:出錯時記錄到一張日誌表或給我發通知。 6. 測試方法:如何先用少量數據或只發給自己測試。 公式能解決的就不要寫腳本。
高亮處換成你自己的內容:[表格結構]、[需求]、[使用方式]、[偏好]
ChatGPT Plus 充值
已被複製 0 次
使用說明
怎麼填變量:[表格結構] 寫清工作表名稱和每一列的含義,QUERY 公式和腳本都要按列來引用。[需求] 寫成「什麼時候、對哪些數據、做什麼」,例如「每天 9 點,找出狀態不是已完成且 3 天內到期的訂單,按負責人分別發電郵」。
常見坑:
- 腳本在循環裏逐個單元格讀取和寫入,幾百行數據就運行很久甚至超時。應該一次讀取整個區域到數組,處理完一次寫回。
- 用「編輯時」的簡單觸發器發電郵,因為權限受限而失敗。需要發電郵等操作時,使用可安裝的觸發器。
- QUERY 中按日期篩選時直接寫日期字符串,結果為空。QUERY 的日期條件需要特定的寫法。
追問技巧:追問「表單提交後,自動把新記錄分配給負責人並發通知」,或「把這個腳本改成只在工作日運行」。
示例輸出
示例,僅供參考(節選)
公式:按負責人彙總未完成訂單金額,按金額降序:
=QUERY(訂單!A1:F, "select C, sum(D) where E <> '已完成' and C is not null group by C order by sum(D) desc label sum(D) '未完成金額'", 1)
腳本:每天給負責人發即將到期提醒(節選):
javascript
function remindDueOrders() {
const sheet = SpreadsheetApp.getActive().getSheetByName('訂單');
const rows = sheet.getDataRange().getValues().slice(1); // 一次讀取全部數據,去掉表頭
const today = new Date(); today.setHours(0, 0, 0, 0);
const byOwner = {};
rows.forEach(([date, customer, owner, amount, status, due]) => {
if (!owner || status === '已完成' || !(due instanceof Date)) return;
const days = Math.round((due - today) / 86400000);
if (days >= 0 && days <= 3) (byOwner[owner] = byOwner[owner] || []).push(`${customer}:${days} 天后到期`);
});
Object.entries(byOwner).forEach(([owner, lines]) => {
MailApp.sendEmail(lookupEmail(owner), '訂單到期提醒', lines.join('\n'));
});
}
觸發器:在 Apps Script 編輯器左側「觸發器」中添加,選擇「時間驅動 → 日定時器 → 上午 9 點至 10 點」。
同款作品
用這條提示詞做出來的作品;原作者會因此獲得積分
還沒有同款,來做第一個。


0 條評論
還沒有評論,來搶沙發~