見出し画像

【GAS】指定した列を別のシートに転記するスクリプト

指定した列のデータを別のシートに転記してみます。

指定した列のデータのみを別のシートに転記する

以下のGASコードは、指定した列のデータのみを別のシートに転記するスクリプトです。

function copyColumnToAnotherSheet() {
  var sourceSheetName = "元のシート名";
  var targetSheetName = "転記先のシート名";
  var columnToCopy = "転記したい列の文字列";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName(sourceSheetName);
  var targetSheet = ss.getSheetByName(targetSheetName);

  var columnToCopyIndex = sourceSheet.getRange(1, 1, 1, sourceSheet.getLastColumn())
    .getValues()[0].indexOf(columnToCopy) + 1;

  var sourceData = sourceSheet.getDataRange().getValues();
  var targetData = sourceData.map(row => [row[columnToCopyIndex - 1]]);

  targetSheet.getRange(1, 1, targetData.length, targetData[0].length).setValues(targetData);
}

.indexOf(columnToCopy)で最初に変数(転記したい列の文字列)文字が見つかった位置のインデックス番号を取得します。0から始まるので+1しています。

ログ例:

var columnToCopyIndex = sourceSheet.getRange(1, 1, 1, sourceSheet.getLastColumn())
    .getValues()[0].indexOf(columnToCopy) + 1;
  Logger.log(columnToCopyIndex);

情報	5.0

Mapオブジェクト

.map(row =>で与えられた関数を配列のすべての要素に対して呼び出し、その結果からなる新しい配列を生成します。

続きはこちら
https://eguweb.jp/gas/62649/

この記事が参加している募集

仕事について話そう

サポートお願い致します!