質問するログイン新規登録

回答編集履歴

2

通信回数の例修正

2022/12/30 05:04

投稿

Cocode
Cocode

スコア2316

answer CHANGED
@@ -8,8 +8,8 @@
8
8
  処理を軽く(速く)する方法は、GASとスプレッドシートの通信回数を減らすことです。
9
9
 
10
10
  - 例えば、全部で1500行、そのうち対象の行が100行ある場合、
11
- - 1行ずつ処理していると、1500回+100回通信することになります。
11
+ - 1行ずつ処理していると、判定で1500回 表示・非表示でさらに1500回通信(合計3000回)することになります。
12
- - 一括判定ですと、1回+100回の通信で済みます。
12
+ - 一括判定ですと、判定で1回 非表示1回 + 表示で100回(合計102回)の通信で済みます。
13
13
 
14
14
  私のコードは後者の処理方法をしています。
15
15
 

1

コード内のコメント修正

2022/12/30 05:01

投稿

Cocode
Cocode

スコア2316

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.0, 2.0, 3.0, 4.0, 5.0, 4.0, 2.0, , 1.0, 1.0, 3.0, , 2.0, 1.0, 5.0, 5.0, 3.0]
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
- // [8.0, 16.0, 22.0]
36
+ // 例:[ 10, 20, 21 ]
37
37
 
38
38
  // 6行目以降の、全ての行を非表示
39
39
  sheet.hideRows(6, lastRow - startRow + 1);