指定した列のデータを別のシートに転記してみます。
指定した列のデータのみを別のシートに転記する
以下の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 =>で与えられた関数を配列のすべての要素に対して呼び出し、その結果からなる新しい配列を生成します。
var sourceData = sourceSheet.getDataRange().getValues();
var targetData = sourceData.map(row => [row[columnToCopyIndex - 1]]);
Logger.log(targetData);
情報 [[名称], [share], [タバックケータリングサービス], [hairplaceapego], [道頓堀どむす相川店], [焼肉 炙], [一福], [サロン・ド・ファンタジア 稲葉店], [NTLCランゲージグループ], [サントリー・オールド・バー・江坂店], [mousahair], [有限会社森下自動車], [なにわ翁], [満点個別], [個別指導のハロ・ウィン中百舌鳥校]]
スクリプトを実行すると、指定した列(今回の場合は「名称」という列)が別の指定したシートの列に書き込まれます。
まとめ
上記のスクリプトは、Google Apps Scriptを使用して、指定した列のみを別のシートに転記するものです。以上の手順を踏むことで、スクリプトが実行され、指定した列のみが別のシートにコピーされます。