回答編集履歴
2
通信回数の例修正
answer
CHANGED
@@ -8,8 +8,8 @@
|
|
8
8
|
処理を軽く(速く)する方法は、GASとスプレッドシートの通信回数を減らすことです。
|
9
9
|
|
10
10
|
- 例えば、全部で1500行、そのうち対象の行が100行ある場合、
|
11
|
-
- 1行ずつ処理していると、1500回+
|
11
|
+
- 1行ずつ処理していると、判定で1500回 + 表示・非表示でさらに1500回通信(合計3000回)することになります。
|
12
|
-
- 一括判定ですと、1回+100回の通信で済みます。
|
12
|
+
- 一括判定ですと、判定で1回 + 非表示1回 + 表示で100回(合計102回)の通信で済みます。
|
13
13
|
|
14
14
|
私のコードは後者の処理方法をしています。
|
15
15
|
|
1
コード内のコメント修正
answer
CHANGED
@@ -29,11 +29,11 @@
|
|
29
29
|
|
30
30
|
// B6〜最終行までのB列の値を取得
|
31
31
|
const values = sheet.getRange(startRow, 2, lastRow - startRow + 1, 1).getValues().flat();
|
32
|
-
// [1
|
32
|
+
// 例:[ 1, 2, 3, 4, 5, 4, 2, '', 1, 1, 3, '', 2, 1, 5, 5, 3 ]
|
33
33
|
|
34
34
|
// A3セルの値=B列の値である、行番号を取得
|
35
35
|
const targetRows = values.flatMap((v, i) => v === criterion ? i + startRow : []);
|
36
|
-
// [
|
36
|
+
// 例:[ 10, 20, 21 ]
|
37
37
|
|
38
38
|
// 6行目以降の、全ての行を非表示
|
39
39
|
sheet.hideRows(6, lastRow - startRow + 1);
|