teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

10

読みやすくなるように修正

2017/06/09 07:01

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -154,9 +154,9 @@
154
154
  2016/05/14 エラー
155
155
  2016/05/14 A
156
156
 
157
- 日付型データでの処理がうまくいかないため、現在はまだ、先程の都道府県のデータで試しているのですが、メールが実現出来ません。データが追加されるたびに送信されてしまったり、日付順ではなくなってしまうのです。
157
+ 日付型データでの処理がうまくいかないため、現在はまだ、先程の都道府県のデータで試しているのですが、実現出来ていません。データが追加されるたびに送信されてしまったり、送信順が日付順ではなくなってしまうのです。また、後からループなどで扱おうとした際にres["東京"]など、数字で指定できないのです。
158
158
  そこでメールの自動送信を諦めて、まず日付ごとに振り分けたデータをその日付毎にシートや別ファイルとして書き出すことにとどめようかと考えています。
159
- しかしシートを日数分の数十個も作成するわけにも行かず悩んでいます。
159
+ しかしシートを日数データ分の数十~数百個も作成するわけにも行かず悩んでいます。
160
160
 
161
161
  今回の質問はこのために考えた工程だったのですが、遠回りしていますでしょうか。
162
162
 

9

進行状況の更新と追記

2017/06/09 07:01

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,8 @@
16
16
  `2016/05/15`を含むなら、ary_3へ `2016/05/15 B`
17
17
  をpushしたい。
18
18
 
19
- この日付部分は後にシートの名前やメールタイトルに。配列の値も使用す。
19
+ さらに、この日付部分は後にシートの名前やメールタイトルにしたいです。
20
+ 配列の値は改行を加えた本文や、セルの値として使用していきたいです。
20
21
 
21
22
 
22
23
  ###試したこと
@@ -87,47 +88,78 @@
87
88
  http://qiita.com/htano/items/2476c7f616bed531e2f3
88
89
 
89
90
 
90
- ###追記
91
- 5/23
92
- 配列の中に配列を入れることを考えました。しかしそれでも個数を割り出してから変数を用意しなければなりません。
93
- 他に考え方はあるのでしょうか?
94
- 参考 https://www.ajaxtower.jp/js/array/index5.html
95
-
96
91
  ###補足
97
- 実際使用するtest2やtest3は
92
+ 実際使用するtest2やtest3のデータ
98
- シートからgetRange().getValues()でもってきたものになります。
93
+ シートからgetRange().getValues()でもってきたもので、になります。
99
94
 
100
- ###進行状況
95
+ ###進行状況 教えていただいたどちらも試しています
101
96
 
97
+ A,配列を使用する方法
102
98
  coco_bauerさんにいただいたアドバイスから
103
99
 
104
100
  ```
105
- var test2 = Sheet03.getRange(1,1,maxRow).getValues();
101
+ var test2 = Sheet03.getRange(2,1,maxRow).getValues();
106
- var c2 = test2.length;
102
+ var c2 = test2.length;
107
103
 
108
- var test3 = Sheet03.getRange(1,2,maxRow).getValues();
104
+ var test3 = Sheet03.getRange(2,2,maxRow).getValues();
109
- var c3 = test3.length;
105
+ var c3 = test3.length;
110
106
 
111
- var ary = [];
107
+ var ary = [];
108
+
112
109
 
110
+ for(var i=0;i<c3;i++){
111
+ var date = test3[i];
112
+ var ary[i] = [];
113
113
 
114
- for(var i=0;i<c2;i++){
115
- var date = test3[i];
116
- for(var j=0;j<c3;j++){
114
+ for(var j=0;j<c2;j++){
115
+ var res = test2[j].match(date);
117
116
 
117
+ if(res != null){
118
- var k = test2[j].match(date);
118
+ ary[i].push(date)
119
+ }
119
120
 
120
- if(k != null){
121
- ary[i].push(g)
122
- }
121
+ }
123
-
124
- }
122
+ }
125
- }
126
123
  ```
127
124
  としてみました。
125
+ しかし、
128
- しかしログをみるtest3が [Thu May 11 00:00:00 GMT+09:00 2017]このような形になっているせいか、matchを使えないの
126
+ matchのころで、「オブジェクト[2017/05/11 21:53:43]A1関数matchが見つかりません」となり、
127
+ var ary[i] = [];の箇所で配列の中に配列を作ろうとすると「ステートメントの前に;がありません。」
129
- 使えたすれば上記の流れであっているでょうか
128
+ ってしまいます
129
+ (多次元配列 参考:http://hakuhin.jp/js/array.html#ARRAY_04 https://www.ajaxtower.jp/js/array/index5.html)
130
130
 
131
- kei344さんに教えていただいたものも理解したいため、調べ中です。for inが出て来るあたりで躓いています。
132
131
 
132
+
133
+
134
+ B,kei344さんに教えていただいたものも理解したいため、調べながら試しています。
135
+ ```
136
+ var test2 = [ '東京', '神奈川', '千葉' ];
137
+ var test3 = [ '東京都千代田区', '東京都世田谷区', '神奈川県川崎市', '千葉県柏市' ];
138
+ ```
139
+ データが上記のような場合
140
+ Logger.log(res)
141
+ `{神奈川=[神奈川県川崎市], 東京=[東京都千代田区, 東京都世田谷区], 千葉=[千葉県柏市]}`
142
+ Logger.log(res["東京"])
143
+ `[東京都千代田区, 東京都世田谷区]`
144
+ と出来たのですが、実際使用する日付型のデータだと出来ないでいます。
145
+ 実際日付を扱うため、並びも日付順(もとのまま)であって欲しいです。
146
+
147
+ ###この後以下の処理をしたい
148
+ 続けて、内容をテキストファイルとして書き出したり、シートを生成したり、メールとして自動送信する際にここで作った値を使用したいのです。
149
+
150
+ メール、最初の例のデータの場合
151
+ <タイトル>
152
+ 2016/05/14
153
+ <本文(1つずつ改行する)>
154
+ 2016/05/14 エラー
155
+ 2016/05/14 A
156
+
157
+ 日付型データでの処理がうまくいかないため、現在はまだ、先程の都道府県のデータで試しているのですが、メールが実現出来ません。データが追加されるたびに送信されてしまったり、日付順ではなくなってしまうのです。
158
+ そこでメールの自動送信を諦めて、まず日付ごとに振り分けたデータをその日付毎にシートや別ファイルとして書き出すことにとどめようかと考えています。
159
+ しかしシートを日数分の数十個も作成するわけにも行かず悩んでいます。
160
+
161
+ 今回の質問はこのために考えた工程だったのですが、遠回りしていますでしょうか。
162
+
163
+
164
+ ###メッセージ
133
- 解決やお礼までまだまだ時間がかかりそうです。スコア等皆様ご迷惑おかけします。
165
+ 解決までまだまだ時間がかかりそうです。スコア等皆様ご迷惑おかけします。

8

進行状況の追記

2017/06/09 06:57

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -96,6 +96,38 @@
96
96
  ###補足
97
97
  実際使用するtest2やtest3は
98
98
  シートからgetRange().getValues()でもってきたものになります。
99
+
99
- ###進行状況
100
+ ###進行状況
101
+
102
+ coco_bauerさんにいただいたアドバイスから
103
+
104
+ ```
105
+ var test2 = Sheet03.getRange(1,1,maxRow).getValues();
106
+ var c2 = test2.length;
107
+
108
+ var test3 = Sheet03.getRange(1,2,maxRow).getValues();
109
+ var c3 = test3.length;
110
+
111
+ var ary = [];
112
+
113
+
114
+ for(var i=0;i<c2;i++){
115
+ var date = test3[i];
116
+ for(var j=0;j<c3;j++){
117
+
118
+ var k = test2[j].match(date);
119
+
120
+ if(k != null){
121
+ ary[i].push(g)
122
+ }
123
+
124
+ }
125
+ }
126
+ ```
127
+ としてみました。
128
+ しかしログをみるとtest3が [Thu May 11 00:00:00 GMT+09:00 2017]このような形になっているせいか、matchを使えないのです。
129
+ 使えたとすれば上記の流れであっているでしょうか。
130
+
100
- 教えていただいたもの調べ中です。for inが出て来るあたりで躓いています。
131
+ kei344さんに教えていただいたものも理解したいため、調べ中です。for inが出て来るあたりで躓いています。
132
+
101
- 解決やお礼までまだまだ時間がかかりそうです。スコア等ご迷惑おかけします。
133
+ 解決やお礼までまだまだ時間がかかりそうです。スコア等皆様ご迷惑おかけします。

7

補足

2017/05/26 10:20

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -93,6 +93,9 @@
93
93
  他に考え方はあるのでしょうか?
94
94
  参考 https://www.ajaxtower.jp/js/array/index5.html
95
95
 
96
+ ###補足
97
+ 実際使用するtest2やtest3は
98
+ シートからgetRange().getValues()でもってきたものになります。
96
99
  ###進行状況
97
100
  教えていただいたものを調べ中です。for inが出て来るあたりで躓いています。
98
101
  解決やお礼までまだまだ時間がかかりそうです。スコア等ご迷惑おかけします。

6

進展状況の追記

2017/05/25 18:56

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -87,7 +87,12 @@
87
87
  http://qiita.com/htano/items/2476c7f616bed531e2f3
88
88
 
89
89
 
90
+ ###追記
90
- ###追記5/23
91
+ 5/23
91
92
  配列の中に配列を入れることを考えました。しかしそれでも個数を割り出してから変数を用意しなければなりません。
92
93
  他に考え方はあるのでしょうか?
93
- 参考 https://www.ajaxtower.jp/js/array/index5.html
94
+ 参考 https://www.ajaxtower.jp/js/array/index5.html
95
+
96
+ ###進行状況
97
+ 教えていただいたものを調べ中です。for inが出て来るあたりで躓いています。
98
+ 解決やお礼までまだまだ時間がかかりそうです。スコア等ご迷惑おかけします。

5

2017/05/25 18:52

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -89,4 +89,5 @@
89
89
 
90
90
  ###追記5/23
91
91
  配列の中に配列を入れることを考えました。しかしそれでも個数を割り出してから変数を用意しなければなりません。
92
- 他に考え方はあるのでしょうか?
92
+ 他に考え方はあるのでしょうか?
93
+ 参考 https://www.ajaxtower.jp/js/array/index5.html

4

2017/05/24 04:07

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -23,9 +23,9 @@
23
23
  1-1,test2の要素数分の配列を宣言
24
24
 
25
25
  ```
26
- var count2 = test2.length;
26
+ var count2 = test2.length;
27
- for(var i=0;i<=count2;i++){
27
+ for(var i=1;i<=count2;i++){
28
- eval('var ary_' + i + '=[];');
28
+ eval('var ary_' + i -1+ '=[];');
29
29
  }
30
30
  Logger.log(ary_1);
31
31
  ```

3

2017/05/24 03:54

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
@@ -80,9 +80,11 @@
80
80
  eval();を使用した生成ができない。
81
81
  また、eval()は使用するべきではないとも聞きます。他に方法があるのでしょうか。
82
82
 
83
- 1-3
83
+ 1-3,
84
- 同上
84
+ 出来ませんでした。
85
85
 
86
+ ###参考
87
+ http://qiita.com/htano/items/2476c7f616bed531e2f3
86
88
 
87
89
 
88
90
  ###追記5/23

2

2017/05/24 03:49

投稿

kusunoki
kusunoki

スコア17

title CHANGED
@@ -1,1 +1,1 @@
1
- スプレッドシート:①重複の削除動的に変数を生成したい
1
+ スプレッドシート:①判定指定した数の変数を動的に生成したい
body CHANGED
@@ -16,7 +16,9 @@
16
16
  `2016/05/15`を含むなら、ary_3へ `2016/05/15 B`
17
17
  をpushしたい。
18
18
 
19
+ この日付部分は後にシートの名前やメールタイトルに。配列の値も使用します。
19
20
 
21
+
20
22
  ###試したこと
21
23
  1-1,test2の要素数分の配列を宣言
22
24
 
@@ -79,4 +81,10 @@
79
81
  また、eval()は使用するべきではないとも聞きます。他に方法があるのでしょうか。
80
82
 
81
83
  1-3,
82
- 同上
84
+ 同上
85
+
86
+
87
+
88
+ ###追記5/23
89
+ 配列の中に配列を入れることを考えました。しかしそれでも個数を割り出してから変数を用意しなければなりません。
90
+ 他に考え方はあるのでしょうか?

1

初心者マークの追加

2017/05/23 05:03

投稿

kusunoki
kusunoki

スコア17

title CHANGED
File without changes
body CHANGED
File without changes