【GAS】スプレッドシートで列指定で同じ行の更新日時を取得する方法

GAS
GAS
この記事は約3分で読めます。
スポンサーリンク

今回は以下の記事を少し発展させて、特定の列における更新に絞って更新日時を取得する方法をご紹介します。

なおスクリプト以外は以下記事と同じなので、今回はスクリプトの紹介のみ行っています。
細かな作業方法を知りたい方は以下をご覧ください。

【GAS】スプレッドシートで同じ行の更新日時を取得する方法

GASで更新日時を自動取得する アウトプットイメージ

今回はこのようなA列の2行目以降に分類を入力したら、その変更日時を取得して隣のセルに入れるような仕様になります。

なお、B列以降のセルに何かを入れてもB列は更新されない点が前回記事とは異なる点です。

スクリプト

簡単に説明すると、アクティブなセルのアドレスと、アクティブなセルと同じ行数のA列セルのアドレスを取得し、それらが等しい場合にB列に日時を入れるという記述になります。

function insertLastUpdated_column() {
  //アクティブなスプレッドシートの特定のシートを指定
  var ss = SpreadsheetApp.getActive().getSheetByName('test'); 
  //アクティブなセルの行数を取得
  var currentRow = ss.getActiveCell().getRow(); 
  //更新日をいれるセルを指定、B+currentRowでB列のセルを指定できる
  var updateRange = ss.getRange('B' + currentRow);
  
  //アクティブなセルのアドレスを取得
  var currentCell = ss.getActiveCell().getA1Notation();
  Logger.log(currentCell);
  
  //アクティブなセルと同じ行のA列セルのアドレスを取得
  var inputCell = ss.getRange('A' + currentRow).getA1Notation();
  Logger.log(inputCell);
  
  //1行目を除き、currentCellとinputCellが同じだった場合に日付を更新する
  if(currentRow>1){ 
    if(inputCell==currentCell) { 
      updateRange.setValue(new Date());
    }
  }
}

まとめ

今回は上記記事を見て下さった方からのご要望ということもあり検証して記事にしてみました。

実務で活かせる、実際に悩むようなものをベースに記事を書いているので、もしこういうこともできないか知りたい!ということがありましたらぜひお問い合わせください!

僕もwebマーケティング業務を行う傍で勉強して業務で効率化している程度なので、本職の方々から見たら拙い&時間はかかるかと思いますが、1つ1つ検証して記事にできたらと思っています。