ChatGPTで、スプレッドシートの特定の文字を含む行を別のシートに移動させる作業のスクリプトを書いてもらう【備忘録】
ChatGPT備忘録としてのメモ。例えば、スプレッドシートの一覧に500行以上のテキストデータがあるとして、その中に特定のキーワードを含むものだけ、となりのシートにコピーしたい場合、たいてい並び替えてみたり、関数で行に印をつけるといった作業になるが、今回は、これを丸ごとプロンプトとして投げる
すると、下記のようなGASのスクリプトを書いてくれる。これをApps Scriptに貼り付けて実行すれば、速攻でこういう作業が終わる。
実はこういう積み重ねが時短になるのがChatGPTの地味に凄いところ
function moveShortsRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName("元のシート名"); // 元のシート名を指定
var targetSheet = ss.getSheetByName("移動先のシート名"); // 移動先のシート名を指定
var sourceRange = sourceSheet.getDataRange();
var sourceValues = sourceRange.getValues();
var rowsToMove = [];
var rowsToDelete = [];
// '#Shorts'が含まれる行を検索
for (var i = 0; i < sourceValues.length; i++) {
var row = sourceValues[i];
if (row.join().indexOf('#Shorts') !== -1) { // 行内に'#Shorts'が含まれているかチェック
rowsToMove.push(row);
rowsToDelete.push(i);
}
}
// 移動先のシートに行を追加
if (rowsToMove.length > 0) {
targetSheet.getRange(targetSheet.getLastRow() + 1, 1, rowsToMove.length, rowsToMove[0].length).setValues(rowsToMove);
}
// 元のシートから行を削除(後ろから削除していく)
for (var i = rowsToDelete.length - 1; i >= 0; i--) {
sourceSheet.deleteRow(rowsToDelete[i] + 1); // 行番号は1始まりのため+1
}
}
この記事が気に入ったらサポートをしてみませんか?