回答編集履歴
24
test
CHANGED
@@ -8,8 +8,7 @@
|
|
8
8
|
各マンションで確認済みのものにチェックを入れて送信しているとします。
|
9
9
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/cfb4ad75-64a0-4665-9f78-cef5710f33e9.png)
|
10
10
|
|
11
|
-
そして、**フォーム回答先のシート**が下図のように、
|
12
|
-
**B列**に、チェックを入れた号室がカンマ区切りで
|
11
|
+
そして、**フォーム回答先のシート**は、下図のように**B列**に、チェックを入れた号室がカンマ区切りで自動転記されると仮定します。
|
13
12
|
(10個の各スプレッドシートすべて、**B列**に号室の回答データが入ると仮定します)
|
14
13
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/42e73eee-19a5-40aa-9167-394bf46ef5f7.png)
|
15
14
|
|
23
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
(※注意:一部こちらで推定した情報をもとに説明を進めます。
|
2
|
-
また、下の説明中の図ではマンション数が3
|
2
|
+
また、下の説明中の図ではマンション数が3棟の場合の様式になっていますが、実際は10棟とみなしてください)
|
3
3
|
|
4
4
|
|
5
5
|
---
|
@@ -8,8 +8,8 @@
|
|
8
8
|
各マンションで確認済みのものにチェックを入れて送信しているとします。
|
9
9
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/cfb4ad75-64a0-4665-9f78-cef5710f33e9.png)
|
10
10
|
|
11
|
-
そして、**フォーム回答先のシート**が下図のように
|
11
|
+
そして、**フォーム回答先のシート**が下図のように、
|
12
|
-
|
12
|
+
**B列**に、チェックを入れた号室がカンマ区切りで入ると仮定します。
|
13
13
|
(10個の各スプレッドシートすべて、**B列**に号室の回答データが入ると仮定します)
|
14
14
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/42e73eee-19a5-40aa-9167-394bf46ef5f7.png)
|
15
15
|
|
22
test
CHANGED
@@ -126,7 +126,7 @@
|
|
126
126
|
|
127
127
|
各回答シートに、最新(最下行)の確認済み号室の個数を表示するには、
|
128
128
|
たとえば各回答シートのE1セルに下記の数式を入力します。
|
129
|
-
|
129
|
+
(※数式末尾の「", "」は「カンマ+半角スペース」です。注意してください。)
|
130
130
|
```
|
131
131
|
=COUNT((SPLIT((INDIRECT("B" & COUNTA((A1:A)))),", ")))
|
132
132
|
```
|
21
追記
test
CHANGED
@@ -116,3 +116,22 @@
|
|
116
116
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-12/0d7891b2-4e80-43c3-b151-444be9936421.png)
|
117
117
|
|
118
118
|
数式がエラーになる場合は、数式内のスプレッドシートIDやシート名が誤っていないか確認してください。
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
---
|
124
|
+
|
125
|
+
# 【回答シートにカウントを表示する方法】
|
126
|
+
|
127
|
+
各回答シートに、最新(最下行)の確認済み号室の個数を表示するには、
|
128
|
+
たとえば各回答シートのE1セルに下記の数式を入力します。
|
129
|
+
|
130
|
+
```
|
131
|
+
=COUNT((SPLIT((INDIRECT("B" & COUNTA((A1:A)))),", ")))
|
132
|
+
```
|
133
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-14/9f4fc590-84c0-4650-bf05-4765bab3d810.png)
|
134
|
+
|
135
|
+
注意:下図のように、A列の途中に空白行があると最新の回答データで計算されません。このような場合は、空白の行を削除してください。
|
136
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-14/d16c5c3f-6260-49b7-9d6b-9728510e1e93.png)
|
137
|
+
|
20
1室しか回答がない場合エラーになっていたのを修正
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
// 前回の集計値をクリアする
|
39
39
|
shuukei.getRange("B5:K1000").clearContent();
|
40
40
|
// マンション名の行を取得
|
41
|
-
const names = shuukei.getRange("B4:K4").getValues()[0];
|
41
|
+
const names = shuukei.getRange("B4:K4").getDisplayValues()[0];
|
42
42
|
|
43
43
|
// マンション名と、それに対応する回答シートのリストを設定
|
44
44
|
// 注意:nameには、集計シートの4行目に入力したマンション名と1字1句同じ文字を入力すること。全角・半角・大文字・小文字も区別する。
|
@@ -59,7 +59,7 @@
|
|
59
59
|
if (lastrow < 2) continue;
|
60
60
|
|
61
61
|
// チェックが入っている号室を取得
|
62
|
-
const ans = ms.getRange(lastrow, 2, 1, 1).getValue(); //「2」=B列に回答が入っているという想定
|
62
|
+
const ans = ms.getRange(lastrow, 2, 1, 1).getDisplayValue(); //「2」=B列に回答が入っているという想定
|
63
63
|
const rooms = ans.split(', ');
|
64
64
|
|
65
65
|
// マンション名が集計シートの何列目にあるかを探す。
|
19
test
CHANGED
@@ -109,7 +109,7 @@
|
|
109
109
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-12/4c4b40df-56f3-40ac-8d4d-da7bc8824ed3.png)
|
110
110
|
|
111
111
|
|
112
|
-
3.C5セル
|
112
|
+
3.C5セル~K5セルは、B5セルに入力した数式と同じ式を、**フォーム(マンション)ごとのスプレッドシートIDとシート名の部分だけ変えて**入力します。
|
113
113
|
|
114
114
|
4.初回はセルの表示がエラー(「#REF!」)となるので、セルをクリックし、「アクセスを許可」ボタンを押します。
|
115
115
|
(初回のみ、10個のセル全部に対してこの操作を行う必要があります)
|
18
test
CHANGED
@@ -99,7 +99,7 @@
|
|
99
99
|
|
100
100
|
※動作が非常に重いです。
|
101
101
|
|
102
|
-
1.
|
102
|
+
1.上述の② と同じ要領で集計シートを作っておきます。
|
103
103
|
|
104
104
|
2.B5セルに、下記の数式を入力します。末尾の「", "」は「カンマ+半角スペース」であることに注意してください。
|
105
105
|
```
|
17
test
CHANGED
@@ -111,6 +111,8 @@
|
|
111
111
|
|
112
112
|
3.C5セル以降は、B5セルに入力した数式と同様の式を、**フォーム(マンション)ごとのスプレッドシートIDとシート名に変えて**入力します。
|
113
113
|
|
114
|
-
4.初回はセルの表示がエラー(「#REF!」)となるので、セルをクリックし、「アクセス許可」ボタンを押します。
|
114
|
+
4.初回はセルの表示がエラー(「#REF!」)となるので、セルをクリックし、「アクセスを許可」ボタンを押します。
|
115
|
+
(初回のみ、10個のセル全部に対してこの操作を行う必要があります)
|
115
116
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-12/0d7891b2-4e80-43c3-b151-444be9936421.png)
|
116
117
|
|
118
|
+
数式がエラーになる場合は、数式内のスプレッドシートIDやシート名が誤っていないか確認してください。
|
16
関数を使ったやり方を追記
test
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
(※注意:一部こちらで推定した情報をもとに説明を進めます。
|
2
2
|
また、下の説明中の図ではマンション数が3つの場合の様式になっていますが、実際は10個とみなしてください)
|
3
3
|
|
4
|
-
・IMPORTRANGE等の関数を駆使するやり方もありますが、ここではスクリプトを使ったやり方を説明します。
|
5
4
|
|
6
5
|
---
|
7
6
|
|
@@ -16,7 +15,10 @@
|
|
16
15
|
|
17
16
|
|
18
17
|
---
|
19
|
-
# 集計シートの作り方、
|
18
|
+
# 集計シートの作り方、スクリプトを使った集計
|
19
|
+
|
20
|
+
・IMPORTRANGE等の関数を使うやり方もありますが(後述)動作が非常に重い為、はじめにスクリプトを使ったやり方から説明します。
|
21
|
+
|
20
22
|
①まず、10個の各フォームの回答先シートのスプレッドシートIDとシート名を各々ひかえておきます。
|
21
23
|
|
22
24
|
②次に、新しいスプレッドシートを用意して、下図のような「集計」という名前のシートを作成します。
|
@@ -90,3 +92,25 @@
|
|
90
92
|
|
91
93
|
(実際は各部屋番号をチェックボックスとして持つ10個のフォームの作成、集計シートの作成、ひいては上記mansions配列の記述に相当する部分までほぼ全部自動化できますが、ここでは範囲外となるため割愛します)
|
92
94
|
|
95
|
+
---
|
96
|
+
|
97
|
+
|
98
|
+
# 関数を使ったやり方
|
99
|
+
|
100
|
+
※動作が非常に重いです。
|
101
|
+
|
102
|
+
1. 上述の② と同じ要領で集計シートを作っておきます。
|
103
|
+
|
104
|
+
2.B5セルに、下記の数式を入力します。末尾の「", "」は「カンマ+半角スペース」であることに注意してください。
|
105
|
+
```
|
106
|
+
=TRANSPOSE(SPLIT(IMPORTRANGE("マンションAの回答シートのシートID", "マンションAの回答シートのシート名!B" &
|
107
|
+
COUNTA(IMPORTRANGE("マンションAの回答シートのシートID","マンションAの回答シートのシート名!B1:B"))), ", "))
|
108
|
+
```
|
109
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-12/4c4b40df-56f3-40ac-8d4d-da7bc8824ed3.png)
|
110
|
+
|
111
|
+
|
112
|
+
3.C5セル以降は、B5セルに入力した数式と同様の式を、**フォーム(マンション)ごとのスプレッドシートIDとシート名に変えて**入力します。
|
113
|
+
|
114
|
+
4.初回はセルの表示がエラー(「#REF!」)となるので、セルをクリックし、「アクセス許可」ボタンを押します。(10個のセル全部に対して初回のみこの操作を行う必要があります)
|
115
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-12/0d7891b2-4e80-43c3-b151-444be9936421.png)
|
116
|
+
|
15
test
CHANGED
@@ -1,12 +1,7 @@
|
|
1
|
-
<前提>
|
2
|
-
> 各棟の安否確認回答をスプレッドシートに書き出し、10棟のスプレッドシートの統合と各スプレッドシートには安否確認が出来た棟室がCSVで書き出しされるので、各棟のCSV数の集計と全棟のCSV数の集計を行いたい
|
3
|
-
|
4
|
-
Googleフォーム/スプレッドシートにおいて、本件のような複雑なことは、設定メニューでボタンを押したり、単純な関数を組み合わせたりするだけでは実現できません。
|
5
|
-
下記のように、ある程度自分で集計用のシートを作ってお膳立てした上で、Apps Script(プログラム)を用いる必要があります。
|
6
|
-
|
7
|
-
|
8
1
|
(※注意:一部こちらで推定した情報をもとに説明を進めます。
|
9
2
|
また、下の説明中の図ではマンション数が3つの場合の様式になっていますが、実際は10個とみなしてください)
|
3
|
+
|
4
|
+
・IMPORTRANGE等の関数を駆使するやり方もありますが、ここではスクリプトを使ったやり方を説明します。
|
10
5
|
|
11
6
|
---
|
12
7
|
|
14
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<前提>
|
2
2
|
> 各棟の安否確認回答をスプレッドシートに書き出し、10棟のスプレッドシートの統合と各スプレッドシートには安否確認が出来た棟室がCSVで書き出しされるので、各棟のCSV数の集計と全棟のCSV数の集計を行いたい
|
3
3
|
|
4
|
-
Googleフォームにおいて、本件のような複雑なことは、設定メニューでボタンを押したり、単純な関数を組み合わせたりするだけでは実現できません。
|
4
|
+
Googleフォーム/スプレッドシートにおいて、本件のような複雑なことは、設定メニューでボタンを押したり、単純な関数を組み合わせたりするだけでは実現できません。
|
5
5
|
下記のように、ある程度自分で集計用のシートを作ってお膳立てした上で、Apps Script(プログラム)を用いる必要があります。
|
6
6
|
|
7
7
|
|
13
test
CHANGED
@@ -93,5 +93,5 @@
|
|
93
93
|
|
94
94
|
---
|
95
95
|
|
96
|
-
(実際は各部屋番号を持つ10個のフォームの作成、集計シートの作成、ひいては上記mansions配列の記述に相当する部分までほぼ全部自動化できますが、ここでは範囲外となるため割愛します)
|
96
|
+
(実際は各部屋番号をチェックボックスとして持つ10個のフォームの作成、集計シートの作成、ひいては上記mansions配列の記述に相当する部分までほぼ全部自動化できますが、ここでは範囲外となるため割愛します)
|
97
97
|
|
12
test
CHANGED
@@ -93,5 +93,5 @@
|
|
93
93
|
|
94
94
|
---
|
95
95
|
|
96
|
-
(実際は各部屋番号を持つ10個のフォームの作成
|
96
|
+
(実際は各部屋番号を持つ10個のフォームの作成、集計シートの作成、ひいては上記mansions配列の記述に相当する部分までほぼ全部自動化できますが、ここでは範囲外となるため割愛します)
|
97
97
|
|
11
test
CHANGED
@@ -91,5 +91,7 @@
|
|
91
91
|
(うまく行かない場合はスクリプト中の「mansions」配列内に記述した各回答スプレッドシートのIDやシート名に誤りがある可能性や、
|
92
92
|
集計シートのマンション名とスクリプト中の「mansions」のnameに記述したマンション名が異なっている可能性があるので、再確認してください)
|
93
93
|
|
94
|
+
---
|
94
95
|
|
96
|
+
(実際は各部屋番号を持つ10個のフォームの作成から上記mansions配列の記述に相当する部分まで自動化できますが、ここでは範囲外となるため割愛します)
|
95
97
|
|
10
test
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
<前提>
|
2
|
+
> 各棟の安否確認回答をスプレッドシートに書き出し、10棟のスプレッドシートの統合と各スプレッドシートには安否確認が出来た棟室がCSVで書き出しされるので、各棟のCSV数の集計と全棟のCSV数の集計を行いたい
|
3
|
+
|
4
|
+
Googleフォームにおいて、本件のような複雑なことは、設定メニューでボタンを押したり、単純な関数を組み合わせたりするだけでは実現できません。
|
5
|
+
下記のように、ある程度自分で集計用のシートを作ってお膳立てした上で、Apps Script(プログラム)を用いる必要があります。
|
6
|
+
|
7
|
+
|
1
8
|
(※注意:一部こちらで推定した情報をもとに説明を進めます。
|
2
9
|
また、下の説明中の図ではマンション数が3つの場合の様式になっていますが、実際は10個とみなしてください)
|
3
10
|
|
9
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
(※注意:
|
1
|
+
(※注意:一部こちらで推定した情報をもとに説明を進めます。
|
2
|
-
また、下の説明中の図ではマンション数が3つの場合の様式
|
2
|
+
また、下の説明中の図ではマンション数が3つの場合の様式になっていますが、実際は10個とみなしてください)
|
3
3
|
|
4
4
|
---
|
5
5
|
|
8
test
CHANGED
@@ -71,7 +71,7 @@
|
|
71
71
|
// チェックの入っている号室がゼロ個の場合はスキップ。
|
72
72
|
if (rows === 0) continue;
|
73
73
|
|
74
|
-
shuukei.getRange(5, pos, rows, 1).setValues(values)
|
74
|
+
shuukei.getRange(5, pos, rows, 1).setValues(values);
|
75
75
|
}
|
76
76
|
}
|
77
77
|
```
|
7
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
const ans = ms.getRange(lastrow, 2, 1, 1).getValue(); //「2」=B列に回答が入っているという想定
|
59
59
|
const rooms = ans.split(', ');
|
60
60
|
|
61
|
-
// マンション名が集計シートの何列目にあるか
|
61
|
+
// マンション名が集計シートの何列目にあるかを探す。
|
62
62
|
const pos = names.indexOf(mansion.name) + 2; // B列からはじまるので+2
|
63
63
|
|
64
64
|
// マンション名が見つからない場合はスキップ
|
6
test
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
(※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。
|
1
|
+
(※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。
|
2
|
+
また、下の説明中の図ではマンション数が3つの場合の様式となっていますが、実際は10個とみなしてください)
|
2
3
|
|
3
4
|
---
|
4
5
|
|
5
test
CHANGED
@@ -24,6 +24,7 @@
|
|
24
24
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/82006bd8-6be0-49f7-aa31-f0aca5666984.png)
|
25
25
|
|
26
26
|
③:集計シートのメニューから「拡張機能」->「Apps Script」をクリックして、スクリプトエディタを開き、下記のコードを入力します。
|
27
|
+
(スクリプト中の「mansions」配列の中に、②でひかえた各回答先スプレッドシートID・シート名を記述します)
|
27
28
|
```js
|
28
29
|
function myFunction() {
|
29
30
|
// 集計シートの取得
|
4
test
CHANGED
@@ -79,7 +79,8 @@
|
|
79
79
|
|
80
80
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/5376aaad-5b94-4198-a731-44a022da062f.png)
|
81
81
|
|
82
|
+
(うまく行かない場合はスクリプト中の「mansions」配列内に記述した各回答スプレッドシートのIDやシート名に誤りがある可能性や、
|
82
|
-
|
83
|
+
集計シートのマンション名とスクリプト中の「mansions」のnameに記述したマンション名が異なっている可能性があるので、再確認してください)
|
83
84
|
|
84
85
|
|
85
86
|
|
3
test
CHANGED
@@ -23,8 +23,7 @@
|
|
23
23
|
・B4セルからK4セルまで、10個のマンション名を手入力しておきます。
|
24
24
|
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/82006bd8-6be0-49f7-aa31-f0aca5666984.png)
|
25
25
|
|
26
|
-
③:
|
26
|
+
③:集計シートのメニューから「拡張機能」->「Apps Script」をクリックして、スクリプトエディタを開き、下記のコードを入力します。
|
27
|
-
|
28
27
|
```js
|
29
28
|
function myFunction() {
|
30
29
|
// 集計シートの取得
|
2
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
(※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。また、下の説明では
|
1
|
+
(※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。また、下の説明ではマンション数を3つとなっていますが、実際は10個とみなしてください)
|
2
2
|
|
3
3
|
---
|
4
4
|
|
1
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
(※注意:フォームやシートの構造に関する具体的な説明・画像等が
|
1
|
+
(※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。また、下の説明では作成の手間からマンション数が3つの画像となっていますが、実際は10個とみなしてください)
|
2
2
|
|
3
3
|
---
|
4
4
|
|
@@ -41,7 +41,7 @@
|
|
41
41
|
{ name: 'マンションA', sheetId: 'マンションAの回答シートのシートID', sheetName : '回答シートのシート名' },
|
42
42
|
{ name: 'マンションB', sheetId: 'マンションBの回答シートのシートID', sheetName : '回答シートのシート名' },
|
43
43
|
{ name: 'マンションC', sheetId: 'マンションCの回答シートのシートID', sheetName : '回答シートのシート名' },
|
44
|
-
];
|
44
|
+
]; // ※ここでは説明の都合上3行のみとなっているが実際はマンションの棟数(10行)だけ記述する。
|
45
45
|
|
46
46
|
// 各マンションごとにチェックが入っている号室の数を集計するループ
|
47
47
|
for (const mansion of mansions) {
|