質問編集履歴

1

前提条件の追加、ソースコードの訂正

2022/09/29 06:40

投稿

T_mari
T_mari

スコア73

test CHANGED
File without changes
test CHANGED
@@ -1,11 +1,17 @@
1
1
  ### 前提
2
-
3
2
  データソースから複数(可変数)条件で抽出するためQUERY関数ではなくGASでスクラッチで記述しています。
4
3
 
4
+ 積上集計のデータソースを生成するにあたりQUERY関数のGROUP BY句を利用するのですが、
5
+ データソースが増えてくるとQUERY関数の挙動が不安定になる為、
6
+ 元データからselect句(query関数)で抽出、group byで積上数値を加算
7
+ →データソースをupdate
8
+ のような構成を想定し制作しています。
9
+ (具体的な工程としてはgroup byが必要なデータとそうでないものを一旦切り分け、計算後に再結合して戻す)
10
+
5
11
  ### 実現したいこと
6
- 以下のようなif文の条件式のor条件が動的に増減するようにしたい
12
+ 以下のようなif文の条件式のand条件が動的に増減するようにしたい
7
13
  ```GAS
8
- if(currentValues[i][0] !==202207 || currentValues[i][0] !==202208){
14
+ if(currentValues[i][0] !==202207 && currentValues[i][0] !==202208){
9
15
  //処理内容
10
16
  }
11
17
  ```
@@ -19,7 +25,7 @@
19
25
  const currentValues = srcSheet.getRange(1, 1, srcSheet.getLastRow(), 10).getValues();
20
26
  let term = ''; //条件格納用の変数
21
27
  for (var i = 0; i < uniqueValues.length; i++) {//条件式を生成
22
- term + `currentValues[i][0] !==` + uniqueValues.shift() + `||`
28
+ term + `currentValues[i][0] !==` + uniqueValues.shift() + `&&`
23
29
  }
24
30
  let extractArray = [];
25
31
  for (var i = 0; i < currentValues.length; i++) {
@@ -36,8 +42,16 @@
36
42
  (条件式を文字列として認識してしまっているため)
37
43
  ```GAS
38
44
  for (var i = 0; i < uniqueValues.length; i++) {
39
- term + `currentValues[i][0] !==` + uniqueValues.shift() + `||`
45
+ term + `currentValues[i][0] !==` + uniqueValues.shift() + `&&`
40
46
  }
41
47
  ```
42
48
 
43
49
  知識不足で恐縮ですがお知恵を拝借できれば幸いです。
50
+
51
+ ### 補足情報
52
+ 早々に回答、修正質問を下さった方、本当にありがとうございます。
53
+ 自身で試行錯誤している間に論理演算子がおかしなことになっていたので修正いたしました。
54
+ パイプでor句としていたところは、&&でand句とすることが想定していた挙動となります。
55
+
56
+ また欲しい結果が分からないというコメントを受け、前提で実現したいことの具体的内容を追記しました。
57
+ uniqueValuesの等号、不等号については上述の通り元データから加工が必要なデータとそうでないデータを切り分ける為に使用します。