[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『GASの実行スピードが遅い』(ぽすと)
いつもお世話になっております。
以下のスクリプトを実行するとものすごくスピードが遅いです。
処理を早くするにはどうすればよいですか?
フォーム回答1シートのA列には2つもお世話になっております。
フォーム回答1シートのA列には2022/1/1から2023/9/30まで記載されていて、C列には?@?A?Bの施設がランダムで記入されている状況です。
以下のスクリプトを実行するとものすごくスピードが遅いです。
処理を早くするにはどうすればよいですか?
// ?@のデータを取得し、B5に転記
営業事業所取得("?@", "B5");
// ?Aのデータを取得し、B13に転記
営業事業所取得("?A", "B14");
// ?Bのデータを取得し、B22に転記
営業事業所取得("?B", "B23");
function 営業事業所取得(営業事業所名, 転記先セル) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet1 = spreadsheet.getSheetByName("シート1");
// シート1のA2からB2に記載されている日付を取得 var startDate = sheet1.getRange("A2").getValue(); var endDate = sheet1.getRange("B2").getValue();
// G列のデータを取得 var dataSheet = spreadsheet.getSheetByName("フォームの回答 1"); var data = dataSheet.getRange("G2:G" + dataSheet.getLastRow()).getValues();
// 結果を格納する配列 var results = [];
// G列のデータから指定の日付範囲内で指定の営業事業所名を検索 for (var i = 0; i < data.length; i++) { var cellValue = data[i][0]; var cellRow = i + 2; // シート上の行番号に合わせて調整
// 日付を取得 var date = dataSheet.getRange("A" + cellRow).getValue();
if (date >= startDate && date <= endDate && cellValue === 営業事業所名 && results.indexOf(cellValue) === -1) { // C列から文字を取得 var charValue = dataSheet.getRange("C" + cellRow).getValue();
// 結果の配列に文字を追加 results.push(charValue); } }
// 結果を指定の転記先セルから順番に右に転記 var targetCell = sheet1.getRange(転記先セル); for (var j = 0; j < results.length; j++) { targetCell.offset(0, j).setValue(results[j]); } }
何か良い方法をご教示お願いいたします。
< 使用 アプリ:スプレッドシート、使用 OS:unknown >
こちらも参考にしてください。
https://officeforest.org/wp/2018/11/24/google-apps-script%E3%82%92%E9%AB%98%E9%80%9F%E5%8C%96%E3%81%99%E3%82%8B%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF%E3%81%BE%E3%81%A8%E3%82%81/
(ゆたか) 2023/10/19(木) 13:44:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.