【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 =>で与えられた関数を配列のすべての要素に対して呼び出し、その結果からなる新しい配列を生成します。
この記事が参加している募集
サポートお願い致します!