その他

GASを用いてキーワードが含まれるスプレッドシートの表の行内容を抽出し転記する[No104]

スポンサーリンク

処理内容について

スプレッドシートの任意のシートで任意の行にあるキーワードが含まれていたら、そのキーワードが含まれている行を別のスプレッドシートに抽出し転記する。今回の例では、既存のスプレッドシートにシートの追加で結果を転記していますが、都度新規のスプレッドシートに転記する方法もありと思います。また、キーワードをソースコード内で記載していますが、スプレッドシートに用意しておき、読み込ませる方法もありと思います。

ソースコード


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);
  }
}

最後までお付き合いいただきありがとうございます!

この情報が誰かの役にたてれば幸いです。

スポンサーリンク

-その他