スポンサーリンク
処理内容について
スプレッドシートの任意のシートで任意の行にあるキーワードが含まれていたら、そのキーワードが含まれている行を別のスプレッドシートに抽出し転記する。今回の例では、既存のスプレッドシートにシートの追加で結果を転記していますが、都度新規のスプレッドシートに転記する方法もありと思います。また、キーワードをソースコード内で記載していますが、スプレッドシートに用意しておき、読み込ませる方法もありと思います。
ソースコード
const pickupKeyword = () => {
try {
let array_itemname = {};
array_itemname['あ項目'] = 0;
array_itemname['い項目'] = 1;
array_itemname['う項目'] = 2;
array_itemname['え項目'] = 3;
array_itemname['お項目'] = 4;
let spreadSheet_from = SpreadsheetApp.openById("XXXXXXXXXXXXXXXXXXXXXXXX");
let spreadSheet_from_sheet = spreadSheet_from.getSheetByName("リスト");
let spreadSheet_to = SpreadsheetApp.openById("YYYYYYYYYYYYYYYYYYYYYYYY");
let spreadSheet_to_sheet = spreadSheet_to.insertSheet();
spreadSheet_to_sheet.setName(Utilities.formatDate(new Date(), "Asia/Tokyo", "YYYYMMdd_HHmmss"));
let data = spreadSheet_from_sheet.getDataRange().getValues();
let keyword_list = ["あいうえお", "かきくけこ"];
let list = [];
list.push(data[0]);
for (let a = 0; a < keyword_list.length; a++) {
for (let b = 1; b < data.length; b++) {
let array_item_list = [];
array_item_list.push(data[b][array_itemname['あ項目']]);
array_item_list.push(data[b][array_itemname['う項目']]);
array_item_list.push(data[b][array_itemname['お項目']]);
for (let c = 0; c < array_item_list.length; c++) {
if (array_item_list[c].indexOf(keyword_list[a]) != -1) {
list.push(data[b]);
break;
}
}
}
}
spreadSheet_to_sheet.clear();
spreadSheet_to_sheet.getRange(1, 1, list.length, list[0].length).setValues(list);
} catch (err) {
Logger.log(err);
}
}
最後までお付き合いいただきありがとうございます!
この情報が誰かの役にたてれば幸いです。