回答編集履歴

24

 

2022/03/20 00:30

投稿

退会済みユーザー
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

 

2022/03/20 00:29

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
  (※注意:一部こちらで推定した情報をもとに説明を進めます。
2
- また、下の説明中の図ではマンション数が3の場合の様式になっていますが、実際は10とみなしてください)
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
- **B列**に、チェックを入れた号室がカンマ区切りで入っていると仮定
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

 

2022/03/14 09:17

投稿

退会済みユーザー
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

追記

2022/03/14 09:02

投稿

退会済みユーザー
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室しか回答がない場合エラーになっていたのを修正

2022/03/12 01:00

投稿

退会済みユーザー
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

 

2022/03/11 15:39

投稿

退会済みユーザー
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セル以降は、B5セルに入力した数式と同様の式を、**フォーム(マンション)ごとのスプレッドシートIDとシート名変えて**入力します。
112
+ 3.C5セル~K5セルは、B5セルに入力した数式と同式を、**フォーム(マンション)ごとのスプレッドシートIDとシート名の部分だけ変えて**入力します。
113
113
 
114
114
  4.初回はセルの表示がエラー(「#REF!」)となるので、セルをクリックし、「アクセスを許可」ボタンを押します。
115
115
  (初回のみ、10個のセル全部に対してこの操作を行う必要があります)

18

 

2022/03/11 15:33

投稿

退会済みユーザー
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

 

2022/03/11 15:33

投稿

退会済みユーザー
test CHANGED
@@ -111,6 +111,8 @@
111
111
 
112
112
  3.C5セル以降は、B5セルに入力した数式と同様の式を、**フォーム(マンション)ごとのスプレッドシートIDとシート名に変えて**入力します。
113
113
 
114
- 4.初回はセルの表示がエラー(「#REF!」)となるので、セルをクリックし、「アクセス許可」ボタンを押します。(10個のセル全部に対して初回のみこの操作を行う必要があります)
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

関数を使ったやり方を追記

2022/03/11 15:31

投稿

退会済みユーザー
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

  

2022/03/11 14:58

投稿

退会済みユーザー
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

 

2022/03/11 14:56

投稿

退会済みユーザー
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

 

2022/03/11 14:55

投稿

退会済みユーザー
test CHANGED
@@ -93,5 +93,5 @@
93
93
 
94
94
  ---
95
95
 
96
- (実際は各部屋番号を持つ10個のフォームの作成、集計シートの作成、ひいては上記mansions配列の記述に相当する部分までほぼ全部自動化できますが、ここでは範囲外となるため割愛します)
96
+ (実際は各部屋番号をチェックボックスとして持つ10個のフォームの作成、集計シートの作成、ひいては上記mansions配列の記述に相当する部分までほぼ全部自動化できますが、ここでは範囲外となるため割愛します)
97
97
 

12

 

2022/03/11 14:54

投稿

退会済みユーザー
test CHANGED
@@ -93,5 +93,5 @@
93
93
 
94
94
  ---
95
95
 
96
- (実際は各部屋番号を持つ10個のフォームの作成から上記mansions配列の記述に相当する部分まで自動化できますが、ここでは範囲外となるため割愛します)
96
+ (実際は各部屋番号を持つ10個のフォームの作成、集計シートの作成、ひいては上記mansions配列の記述に相当する部分までほぼ全部自動化できますが、ここでは範囲外となるため割愛します)
97
97
 

11

 

2022/03/11 14:53

投稿

退会済みユーザー
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

  

2022/03/11 14:50

投稿

退会済みユーザー
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

 

2022/03/11 14:46

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
- (※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。
1
+ (※注意:一部こちらで推定した情報をもとに説明を進めます。
2
- また、下の説明中の図ではマンション数が3つの場合の様式なっていますが、実際は10個とみなしてください)
2
+ また、下の説明中の図ではマンション数が3つの場合の様式なっていますが、実際は10個とみなしてください)
3
3
 
4
4
  ---
5
5
 

8

 

2022/03/11 14:43

投稿

退会済みユーザー
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

 

2022/03/11 14:41

投稿

退会済みユーザー
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

 

2022/03/11 14:39

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,5 @@
1
- (※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。また、下の説明ではマンション数を3つとなっていますが、実際は10個とみなしてください)
1
+ (※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。
2
+ また、下の説明中の図ではマンション数が3つの場合の様式となっていますが、実際は10個とみなしてください)
2
3
 
3
4
  ---
4
5
 

5

 

2022/03/11 14:38

投稿

退会済みユーザー
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

 

2022/03/11 14:36

投稿

退会済みユーザー
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
- (うまく行かない場合は各回答スプレッドシートのIDやシート名に誤りがあるか、集計シートのマンション名とスクリプト中の「mansions」のnameに記述したマンション名が異なっている可能性があるので、再確認してください)
83
+ 集計シートのマンション名とスクリプト中の「mansions」のnameに記述したマンション名が異なっている可能性があるので、再確認してください)
83
84
 
84
85
 
85
86
 

3

 

2022/03/11 14:27

投稿

退会済みユーザー
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
- ③:②で用意したシートのメニューから「拡張機能」->「Apps Script」をクリックして、スクリプトエディタを開き、下記のコードを入力します。
26
+ ③:集計シートのメニューから「拡張機能」->「Apps Script」をクリックして、スクリプトエディタを開き、下記のコードを入力します。
27
-
28
27
  ```js
29
28
  function myFunction() {
30
29
  // 集計シートの取得

2

 

2022/03/11 14:10

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- (※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。また、下の説明では作成の手間からマンション数3つの画像となっていますが、実際は10個とみなしてください)
1
+ (※注意:質問文にフォームやシートの構造に関する具体的な説明・画像等が全く示されていないので、こちらで推定した情報をもとに説明を進めます。また、下の説明ではマンション数3つとなっていますが、実際は10個とみなしてください)
2
2
 
3
3
  ---
4
4
 

1

 

2022/03/11 14:09

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- (※注意:フォームやシートの構造に関する具体的な説明・画像等が特に示されていないので、こちらで推定した情報をもとに説明を進めます。また、下の説明では作成の手間からマンション数が3つの画像となっていますが、実際は10個とみなしてください)
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) {