スプレッドシート日付自動入力の罠!翌日変わる理由と固定化裏技

スプレッドシート日付自動入力の罠!翌日変わる理由と固定化裏技

スプレッドシート日付自動入力の罠!翌日変わる理由と固定化裏技の全貌を分かりやすくまとめてご紹介します。

組織運用において最も推奨される強固な解決策は、Google Apps Script(GAS)を活用した「イベント駆動型のタイムスタンプ自動記録」です。ユーザーが特定のセルに入力した瞬間、あるいはチェックボックスをオンにした瞬間に、スクリプトが静的なテキスト(値)として日付をセルに書き込むため、翌日以降に日付が変動する心配は物理的にゼロになります。

以下は、実務現場で最も汎用性が高い「A列に文字が入力されたら、B列にその日時のタイムスタンプを自動記録する」標準コードです。

function onEdit(e) { var sheet = e.source.getActiveSheet(); var range = e.range; if (sheet.getName() !=="管理台帳") return; var editedColumn = range.getColumn(); var editedRow = range.getRow(); if (editedColumn === 1 && editedRow >= 2) { var targetCell = sheet.getRange(editedRow, 2); // 記録先は隣のB列 if (targetCell.getValue() ==="" && range.getValue() !=="") { var now = new Date(); var formattedDate = Utilities.formatDate(now, "Asia/Tokyo", "yyyy/MM/dd HH:mm"); targetCell.setValue(formattedDate); } } }

このスクリプトの実装手順は極めてシンプルです。

  1. スプレッドシート上部メニューの「拡張機能」>「Apps Script」をクリックする。
  2. 表示されたコードエディタに上記コードを貼り付け、シート名や列番号をご自身のシート設計に合わせて調整する。
  3. エディタ上部の「保存(フロッピーアイコン)」をクリックして閉じる。

これだけで、シンプルトリガー(onEdit)が自動作動し、セルの書き換えをリアルタイムに検知して日付を確定記録してくれます。数式ではなく「固定された文字列・日付値」として書き込まれるため、共同編集者がどのようにシートを閲覧・フィルタリングしても、過去の記録が書き換わる心配は一切ありません。

池田 達也
著者

池田 達也

Webメディアでの編集・執筆歴10年。読者の好奇心を刺激するストーリー作りを心がけています。