Googleスプレッドシートでタイムスタンプの入力方法と活用例
Googleスプレッドシートでの作業中に、「このデータがいつ入力されたのかを簡単に記録したい」「メール送信の記録を管理したい」「ファイル削除の履歴を管理したい」ということはありませんか?
タイムスタンプを使うことで、作業履歴を残し、進捗管理や操作の追跡がとても簡単になります。
そこで、本記事ではタイムスタンプの入力方法と活用例をご紹介します。
タイムスタンプの活用場面
- データ入力の記録
- 承認フローの進捗管理
- 勤怠管理や出退勤の記録
- エラーやトラブル発生時の対応
タイムスタンプを使うことで、作業の履歴を残し、業務の進み具合をより簡単に管理することができます。
データの入力や変更のタイミングを記録することで、業務の流れをわかりやすくし、適切な判断がしやすくなります。
- データ入力の記録
-
入力データの正確な時刻を記録することで、いつ誰がどの情報を入力したかを簡単に追跡できます。
これにより、作業の進捗管理がスムーズに行えます。
- 承認フローの進捗管理
-
申請や承認のフローでは、各ステップの完了時にタイムスタンプを記録することで、全体の流れがどこまで進んでいるのかを把握しやすくなります。
- 勤怠管理や出退勤の記録
-
社員の出勤・退勤時間を正確に記録するために、タイムスタンプを使って簡単に管理ができます。
- エラーやトラブル発生時の対応
-
エラーが発生した際にタイムスタンプで記録を残すことで、問題解決の際に役立ちます。
タイムスタンプを挿入する3つの方法
方法①:手動でタイムスタンプを挿入する方法
ショートカットキーCtrl
+ Shift
+ ;
ショートカットキーを使う方法は、特定のタイミングで手動でタイムスタンプを記録したい場合に便利です。
(出退勤の記録など)
方法②③:自動でタイムスタンプを追加する方法 (GASの活用)
方法②:セルが編集されるたびに自動入力
自動入力する方法としてはGoogle Apps Script(GAS)を活用します。
onEditトリガーを使用して、セルが編集されると自動的にタイムスタンプを追加することができます。
例えば、B列に入力があるとC列にタイムスタンプを記録するスクリプトは以下の通りです。
function onEdit(e) {
const sheet = e.source.getActiveSheet();
const range = e.range;
if (range.getColumn() === 2) { // B列が編集された場合
const timestampCell = sheet.getRange(range.getRow(), 3); // C列にタイムスタンプ
timestampCell.setValue(new Date());
}
}
スクリプトの説明
- onEdit(e) 関数:
-
- この関数は
onEdit
トリガーにより、シート上でセルが編集された際に自動的に呼び出されます。
- この関数は
e.source.getActiveSheet()
:-
- 編集が行われたシートを取得します。
e.range
:-
- 編集されたセルの範囲(行や列)を取得します。
if (range.getColumn() === 2)
:-
- B列が編集された場合のみ次の処理を行います。編集されたセルがB列であることを確認しています。
timestampCell.setValue(new Date())
:-
- タイムスタンプとして、現在の日時をC列に記録します。
スクリプトの実行方法
onEdit
は自動的に実行されるトリガーのため、スクリプト保存後は手動でGASを実行する必要はありません。
Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。
function myFunction(){
}
が最初から入っているため、消去して先ほどのスクリプトを貼り付けます。
スクリプトを書いたら、名前を付けて保存します。
(例:「タイムスタンプ(セル編集時)」)
スプレッドシートに戻ると、B列が編集されるたびに自動でC列にタイムスタンプが挿入されます。
編集と同時に自動的に記録されるため、作業の抜け漏れを防ぐことができます。
方法③:GAS実行時にタイムスタンプを挿入
特定の範囲に対してGASを実行し、タイムスタンプを挿入することも可能です。
例えば、A列にデータを入力後、GASを実行するとB列にタイムスタンプを挿入できます。
function addTimestamp() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
const range = sheet.getRange('A2:A10'); // A2からA10の範囲
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
if (values[i][0] !== '') {
sheet.getRange(i + 2, 2).setValue(new Date()); // B列にタイムスタンプを挿入
}
}
}
スクリプトの説明
getSheetByName('Sheet1')
:-
- 取得したスプレッドシートの中から、名前が
'Sheet1'
であるシートを指定して取得します。 - シート名が異なる場合は、その名前に合わせて
'Sheet1'
の部分を変更する必要があります。
- 取得したスプレッドシートの中から、名前が
sheet.getRange('A1:A')
:-
'Sheet1'
という名前のシートの中で、A列全体の範囲を取得します。- この範囲は、A列に入力されたすべてのデータを操作するために使用されます。
values = range.getValues()
:-
- A列のすべての値を取得し、二次元配列として保持します。
- 各セルの内容が配列の要素として保持され、ループ処理で使用されます。
for
ループ:-
A列のすべてのセルに対して処理を行います。
if (values[i][0] !== '')
:-
- A列の各セルにデータが入力されている場合のみ、次の処理を実行します。
- 空欄にはタイムスタンプが追加されないようになっています。
sheet.getRange(i + 1, 2).setValue(new Date())
:-
- タイムスタンプとして、現在の日時を B列に記録します。
i + 1
は、配列が0から始まるため、セル番号と一致させるために使用します(A1に対応するB列のセルはB1になります)
スクリプトの実行方法
スプレッドシートのA列にデータを入力します。
Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。
function myFunction(){
}
が最初から入っているため、消去して先ほどのスクリプトを貼り付けます。
スクリプトを書いたら、名前を付けて保存します。
(例:「タイムスタンプ(GAS実行時)」)
スクリプトを実行すると、B列にタイムスタンプが追加されます。
A列に入力されたセルを対象に、B列にタイムスタンプが追加されます。
特定の範囲にタイムスタンプをまとめて挿入するのに便利です。
タイムスタンプの活用例
GASを使ったメール送信時にタイムスタンプを追加
GASを使ってメールを自動送信し、送信後にタイムスタンプを追加することで、送信履歴を記録できます。
これにより、重複送信を防ぎ、誰にいつメールを送信したかを簡単に把握できます。
GASでファイル一括削除時にタイムスタンプを追加
GASを使ってファイルを一括削除し、削除後にタイムスタンプを追加することで、削除履歴を記録できます。
これにより、どのファイルをいつ削除したのかを追跡でき、管理が容易になります。
ファイルのアクセス権限変更時にタイムスタンプを追加
GASを使ってスプレッドシート上でファイルのアクセス権限を一括変更する際にもタイムスタンプを活用できます。
これにより、いつアクセス権限を変更したのかを把握でき、ファイル権限の適切な管理に役立ちます。
まとめ
タイムスタンプは、データ入力の時刻を記録し、作業の履歴管理や進捗追跡に役立ちます。
手動での挿入から自動化まで、多様な方法がありますので、業務に合った方法を選ぶことができます。
タイムスタンプを使って、スプレッドシートでの効率的な管理が可能になります。
弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。
GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。
また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
貴方の業務改善を全力でサポートいたします。
コメント