質問編集履歴

2

試してみたが解決につながらなかったことを追記、誤字を修正、全体的に文言修正

2018/05/19 11:29

投稿

code_ugoite
code_ugoite

スコア18

test CHANGED
File without changes
test CHANGED
@@ -24,11 +24,11 @@
24
24
 
25
25
 
26
26
 
27
- ステップ1. 集計先となっているスプレッドシートA, B, C(各1シート)の内容を配列i, ii, iiiとして取得
27
+ ステップ1. 集計先となっているスプレッドシートの内容を配列として取得(スプレッドシートA→配列i, B→配列ii, C→配列iii
28
28
 
29
- ステップ2. この配列を、それぞれ、スプレッドシートDシートa, b, cに書き込む
29
+ ステップ2. スプレッドシートDに、配列i→シートa, 配列ii→シートb, 配列iii→シートc それぞれ書き込む
30
30
 
31
- ステップ3. スプレッドシートDシートdの1行目には予め質問番号などを書いておき、2行目以降に、シートa, b, cの内容を1行目のヘッダーを除いてコピー
31
+ ステップ3. スプレッドシートDシートdの1行目には予め質問番号などを書いておき、2行目以降に、シートa, b, cの内容を1行目のヘッダーを除いてコピー・統合
32
32
 
33
33
 
34
34
 
@@ -42,7 +42,9 @@
42
42
 
43
43
 
44
44
 
45
- どのようにコードを修正すればよいのでしょうか。お力を貸して頂ければ幸いです。
45
+ どのようにコードを修正すればよいのでしょうか。
46
+
47
+ 質問文がわかりにくく、申し訳ありません。お力を貸して頂ければ幸いです。
46
48
 
47
49
 
48
50
 
@@ -54,7 +56,7 @@
54
56
 
55
57
  ```
56
58
 
57
- 6 は無効な範囲です。12 にする必要があります。(行 31、ファイル「コード」)
59
+ 6 は無効な範囲です。12 にする必要があります。(行 33、ファイル「コード」)
58
60
 
59
61
  ```
60
62
 
@@ -72,7 +74,7 @@
72
74
 
73
75
 
74
76
 
75
- //スップ1.と2.
77
+ //スプレドシートA, B, Cの内容を配列として取得、スレッドシートDのシートa, b, cに書き込む
76
78
 
77
79
  var ss = SpreadsheetApp.openById("スプレッドシートDのID");
78
80
 
@@ -116,7 +118,7 @@
116
118
 
117
119
 
118
120
 
119
- //スプ3.
121
+ // プレドシートD・シートdの2行目以降に、シートa, b, cの内容を1行目のヘッダーを除いてコピー
120
122
 
121
123
  Form1data.splice(0,1);
122
124
 
@@ -139,3 +141,31 @@
139
141
  }
140
142
 
141
143
  ```
144
+
145
+
146
+
147
+ ### 試してみたこと(解決にはつながらず)
148
+
149
+ **```arrData[0].length```の代わりに、とりあえず```12```を設定**
150
+
151
+ →相変わらず```6 は無効な範囲です。12 にする必要があります。(行 33、ファイル「コード」)```
152
+
153
+
154
+
155
+ **6の倍は12、ということで```arrData[0].length```を```arrData[0].length*2```としてみる**
156
+
157
+ →```12 は無効な範囲です。24 にする必要があります。(行 33、ファイル「コード」)```
158
+
159
+
160
+
161
+ ```
162
+
163
+ var arrData = Form1data.concat(Form2data, Form3data)
164
+
165
+ Logger.log(arrData[0].length)```
166
+
167
+ var copyTo = SpreadsheetApp.openById("スプレッドシートDのID").getSheetByName("シートd");
168
+
169
+ ```
170
+
171
+ →ログ:```[18-05-19 20:08:53:960 JST] 12.0```

1

フォーム回答の集計表を追記、質問文を改善しました。

2018/05/19 11:29

投稿

code_ugoite
code_ugoite

スコア18

test CHANGED
File without changes
test CHANGED
@@ -4,25 +4,41 @@
4
4
 
5
5
  Googleフォームが3つあり、回答の集計先としてスプレッドシートがA, B, Cの3つあります(1行目はヘッダー)。
6
6
 
7
+
8
+
9
+ |タイムスタンプ|質問1|質問2|質問3|質問4|質問5|…|
10
+
11
+ |:--:|:--:|:--:|:--:|:--:|:--:|:--:|
12
+
13
+ |2018/05/19 19:30:00|回答1a,回答1b(チェックボックスで選択回答)|回答者の名前|回答3(短文)|回答4(短文)|回答5(短文)|…|
14
+
15
+ |…|…|…|…|…|…|…|
16
+
17
+
18
+
7
- フォームは3つとも、最初の5問は共通の質問になっていて、チェックボックスと短文回答構成されています。
19
+ 質問の数はフォームによって異なりますが、最初の5問は共通の質問です。
8
20
 
9
21
 
10
22
 
11
23
  いま、Google Apps Scriptを使い、
12
24
 
13
- ステップ1. スプレッドシートA, B, C(各1シート)の内容を配列として取得
14
25
 
15
- ステップ2. この配列を、スプレッドシートDのシートa, b, cに書き込む
16
26
 
27
+ ステップ1. 集計先となっているスプレッドシートA, B, C(各1シート)の内容を配列i, ii, iiiとして取得
28
+
29
+ ステップ2. この配列を、それぞれ、スプレッドシートDのシートa, b, cに書き込む
30
+
17
- ステップ3. スプレッドシートD・シートdの2行目以降に、シートa, b, cの内容を1行目を除いてコピー
31
+ ステップ3. スプレッドシートD・シートdの1行目には予め質問番号などを書いておき、2行目以降に、シートa, b, cの内容を1行目のヘッダーを除いてコピー
18
32
 
19
33
 
20
34
 
21
- といことをしようとしています。
35
+ そして、シートdを見れば、フォーム3つへの回答が全て見られるよしようとしています。
22
36
 
23
37
 
24
38
 
39
+ 添付のコードでは、ステップ1と2までは処理できているようで、シートa, b, cには、配列として所得した元のスプレッドシートの内容が書き込まれています。
40
+
25
- 添付のコードで、ステップ1と2までは進められるのですが、ステップ3で、以下の「無効な範囲です」というエラーが出てしまいます。
41
+ しかし、ステップ3で、以下の「無効な範囲です」というエラーが出てしまいます。
26
42
 
27
43
 
28
44
 
@@ -38,7 +54,7 @@
38
54
 
39
55
  ```
40
56
 
41
- 6 は無効な範囲です。12 にする必要があります。(行 44、ファイル「コード」)
57
+ 6 は無効な範囲です。12 にする必要があります。(行 31、ファイル「コード」)
42
58
 
43
59
  ```
44
60
 
@@ -52,11 +68,15 @@
52
68
 
53
69
 
54
70
 
55
- function come_together() {
71
+ function form_response_consolidation() {
56
72
 
57
73
 
58
74
 
59
75
  //ステップ1.と2.
76
+
77
+ var ss = SpreadsheetApp.openById("スプレッドシートDのID");
78
+
79
+
60
80
 
61
81
  var Form1 = SpreadsheetApp.openById("スプレッドシートAのID").getSheets()[0];
62
82