質問編集履歴
2
試してみたが解決につながらなかったことを追記、誤字を修正、全体的に文言修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,11 +24,11 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
ステップ1. 集計先となっているスプレッドシート
|
27
|
+
ステップ1. 集計先となっているスプレッドシートの内容を配列として取得(スプレッドシートA→配列i, B→配列ii, C→配列iii)
|
28
28
|
|
29
|
-
ステップ2.
|
29
|
+
ステップ2. スプレッドシートDに、配列i→シートa, 配列ii→シートb, 配列iii→シートc にそれぞれ書き込む
|
30
30
|
|
31
|
-
ステップ3. スプレッドシートD
|
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 にする必要があります。(行 3
|
59
|
+
6 は無効な範囲です。12 にする必要があります。(行 33、ファイル「コード」)
|
58
60
|
|
59
61
|
```
|
60
62
|
|
@@ -72,7 +74,7 @@
|
|
72
74
|
|
73
75
|
|
74
76
|
|
75
|
-
//ス
|
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
|
-
//ス
|
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
フォーム回答の集計表を追記、質問文を改善しました。
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
|
-
フォーム
|
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の内容を
|
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
|
-
|
41
|
+
しかし、ステップ3で、以下の「無効な範囲です」というエラーが出てしまいます。
|
26
42
|
|
27
43
|
|
28
44
|
|
@@ -38,7 +54,7 @@
|
|
38
54
|
|
39
55
|
```
|
40
56
|
|
41
|
-
6 は無効な範囲です。12 にする必要があります。(行
|
57
|
+
6 は無効な範囲です。12 にする必要があります。(行 31、ファイル「コード」)
|
42
58
|
|
43
59
|
```
|
44
60
|
|
@@ -52,11 +68,15 @@
|
|
52
68
|
|
53
69
|
|
54
70
|
|
55
|
-
function
|
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
|
|