幫一個朋友解決問題,他說他用 AI 嘗試過了,先說一下他的需求 他是在 Google Sheet 中
在 Column D 輸入任意值,如果同一列 ( Row) 的 B 欄位 ( Column) 如果有值就沒事,如果沒有就填入今天的日期
我順手測試一下,其實沒有很難啊,就簡單紀錄一下..
首先這用簡單公式一定不太好解決,其實也不是不行但是最好的方式就是用 App Script 去解決
這裡面有一個小地方要注意,因為一個文件會有許多 Sheets ,所以我們必須在事件裡面要指令某一個 Sheet Name
才會作動,不然所有的表格都會出現這效果,主要就是去監聽 OnEdit 事件
程式碼如下:
function onEdit(e) {
const TARGET_SHEET_NAME = "投資金額流水"; // 只作用在這個 Sheet
const INPUT_COL = 4; // D 欄
const DATE_COL = 2; // B 欄
const range = e.range;
const sheet = range.getSheet();
// 1. 限定 Sheet,避免整份文件被誤傷
if (sheet.getName() !== TARGET_SHEET_NAME) return;
// 2. 只處理 D 欄,且只接受單一儲存格編輯
if (range.getColumn() !== INPUT_COL || range.getNumRows() > 1) return;
const row = range.getRow();
const dateCell = sheet.getRange(row, DATE_COL);
// 3. C 有值,且 A 是空白 → 寫入當下日期
if (range.getValue() !== "" && dateCell.getValue() === "") {
dateCell.setValue(new Date());
}
}
Result:

這類需求看似簡單,但只要牽涉到只寫一次不再變動
公式就一定會踩雷,改用 onEdit 搭配欄位與 Sheet 限定
資料不會亂跑,才是 Google Sheet 正確且可維護的做法。
--
本文原文首發於個人部落格: [Google 試算表] 指定欄位輸入時自動補日期 (僅限單一 Sheet)
--
---
The bug existed in all possible states.
Until I ran the code.