質問編集履歴

20

修正

2020/06/21 06:25

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
@@ -1 +1 @@
1
- Google apps Scriptで作成したテキストボックス2箇所に数値入力(数値1,数値2)→数値1でスプレッドシートの行検索→更に数値2で絞り込み行検索→検索行の値をフォーム上に表示したい
1
+ Google apps Scriptで作成のHTMLテキストボックス2箇所に数値入力(数値1,数値2)→数値1でスプレッドシートの行検索→更に数値2で絞り込み行検索→検索行の値をHTML上に表示したい
test CHANGED
File without changes

19

修正

2020/06/21 06:25

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
@@ -1 +1 @@
1
- Google apps Scriptで作成したフォームのテキストボックス2箇所に数値入力→入力された2つの数値を用いてスプレッドシートで複条件で検索→検索ヒットしたセルの値をフォーム上に表示したい
1
+ Google apps Scriptで作成したテキストボックス2箇所に数値入力(数値1,数値2)→数値1でスプレッドシートの行検索→更に値2絞り込み行検索→検索の値をフォーム上に表示したい
test CHANGED
File without changes

18

修正

2020/06/21 06:22

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -66,6 +66,8 @@
66
66
 
67
67
  ```Google apps script
68
68
 
69
+ 【1つ目のコード】**正常に動作します。**
70
+
69
71
  //main.gs
70
72
 
71
73
 

17

修正

2020/06/21 05:53

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -188,6 +188,14 @@
188
188
 
189
189
  //main.gs
190
190
 
191
+ function doGet() {
192
+
193
+ return HtmlService.createTemplateFromFile('index').evaluate;
194
+
195
+ }
196
+
197
+
198
+
191
199
  function kensakus(a,b) {
192
200
 
193
201
  if (a=== undefined)

16

修正

2020/06/21 05:52

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -178,7 +178,7 @@
178
178
 
179
179
  //略
180
180
 
181
-
181
+ ```
182
182
 
183
183
  ``````google apps script
184
184
 

15

追加

2020/06/21 05:51

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -180,4 +180,116 @@
180
180
 
181
181
 
182
182
 
183
+ ``````google apps script
184
+
185
+ 【2つ目のコード】とりあえずここまでできてます。。
186
+
187
+
188
+
189
+ //main.gs
190
+
191
+ function kensakus(a,b) {
192
+
193
+ if (a=== undefined)
194
+
195
+ {
196
+
197
+ b="undefined";
198
+
199
+ return b;
200
+
201
+ }
202
+
203
+ else if (b=== undefined)
204
+
205
+ {
206
+
207
+ b="undefined";
208
+
209
+ return b;
210
+
211
+ }
212
+
213
+ else{
214
+
215
+ var texta = a;
216
+
217
+ var textb = b;
218
+
219
+ var datasheet = SpreadsheetApp.openById("スプレッドシートのID").getSheetByName("シート名");
220
+
221
+ var range = datasheet.getRange("C:C").getValues(); //一番長いC列の最終行取得
222
+
223
+ var lastRow = range.filter(String).length;
224
+
225
+ var loginData = datasheet.getRange(1, 3, lastRow, 5).getValues(); //1~lastRow行目、3~5列分を二次元配列として取得
226
+
227
+ loginData = loginData.filter(
228
+
229
+ function(v) {return v[?] == ??;} ** //ここの検索方法がわかりません。**
230
+
231
+ );
232
+
233
+ try{
234
+
235
+ var seikou = loginData[?][?]; **//どう記述したらいいのかわかりません。**
236
+
237
+ return seikou;
238
+
239
+ }catch(e){
240
+
241
+ seikou = "該当なし";
242
+
243
+ return seikou;
244
+
245
+ }
246
+
247
+ }
248
+
249
+ }
250
+
251
+
252
+
253
+ //index.html
254
+
255
+ //略
256
+
257
+ 2つのテキストボックス
258
+
259
+ <input type="number" id="input">
260
+
261
+ <input type="number" id="inputs">
262
+
263
+
264
+
265
+ <!--このボタンを押すと下のスクリプト動作-->
266
+
267
+ <input type="button" onclick="test()" value="ここを押すとアウトプット">
268
+
269
+
270
+
271
+ <!--ここで検索結果表示したい。-->
272
+
273
+ <div id="outputs"></div>
274
+
275
+ <script>
276
+
277
+ function test() {
278
+
279
+ var a= document.getElementById("input").value;
280
+
281
+ var b= document.getElementById("inputs").value;
282
+
283
+ google.script.run.withSuccessHandler(results).kensakus(a,b);
284
+
285
+ function results(data) {
286
+
287
+ document.getElementById("outputs").innerHTML = data;
288
+
289
+ }
290
+
291
+ </script>
292
+
293
+ //略
294
+
183
295
  ```

14

修正

2020/06/21 05:50

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -78,17 +78,17 @@
78
78
 
79
79
 
80
80
 
81
- function kensaku(a) {
81
+ function kensaku(e) {
82
82
 
83
83
  //HTMLからうまく取得できなければ"undefined"を返す
84
84
 
85
- if (a === undefined)
85
+ if (e === undefined)
86
86
 
87
87
  {
88
88
 
89
- a="undefined";
89
+ e="undefined";
90
90
 
91
- return a;
91
+ return e;
92
92
 
93
93
  }
94
94
 
@@ -96,7 +96,7 @@
96
96
 
97
97
  else{
98
98
 
99
- var text = a;
99
+ var text = e;
100
100
 
101
101
  var datasheet = SpreadsheetApp.openById("スプレッドシートのID").getSheetByName("シート名");
102
102
 

13

2020/06/21 04:28

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
@@ -1 +1 @@
1
- Google apps Scriptで作成したフォームのテキストボックスに数値入力→入力された数値をスプレッドシートで検索→隣にあるセルの値をフォームのテキストボックスの下に表示することは可能ですか?
1
+ Google apps Scriptで作成したフォームのテキストボックス2箇所に数値入力→入力された2つの数値を用いてスプレッドシートで複数条件で検索→検索ヒットしたセルの値をフォームに表示したい
test CHANGED
@@ -1,7 +1,3 @@
1
- ### Google apps Scriptで作成したフォームのテキストボックスに数値入力→入力された数値をスプレッドシートで検索→隣にあるセルの値をフォームのテキストボックスの下に表示することは可能ですか?
2
-
3
-
4
-
5
1
  【スプレッドシート】
6
2
 
7
3
  A列からE列まで2000行のデータがあります。
@@ -62,7 +58,7 @@
62
58
 
63
59
  【進捗】
64
60
 
65
- 以下のコードで上記1つ目のやりたいことは達成できました。2つ目の検索方法がわからない状態です。
61
+ 以下のコードで上記1つ目のやりたいことは達成できました。2つ目の検索方法がわからない状態です。(検索実行時間の短縮などについてもご見解いただければ助かります)
66
62
 
67
63
  ご教授いただければ助かります。
68
64
 

12

2020/06/21 04:02

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -158,7 +158,7 @@
158
158
 
159
159
 
160
160
 
161
- <!--ここで表示するが、"undefined"が表示されてしまう。-->
161
+ <!--表示成功しました-->
162
162
 
163
163
  <div id="output"></div>
164
164
 

11

進捗

2020/06/21 03:52

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -62,13 +62,9 @@
62
62
 
63
63
  【進捗】
64
64
 
65
- 以下のコードで1つ目に挑戦してます。取得できるとこでいけました。
65
+ 以下のコードで上記1つ目のやりたことは達成できました。2つ目の検索方法がわらない状態です。
66
66
 
67
- <input type="button" onclick="test()" value="ここを押すとアウトプット">の
68
-
69
- ボタン押すとoutputに反映されるまで6~7秒かかります。後は、検索ヒットしなかったときの処理くらいできれば。。
70
-
71
- ここがうまくけば2つ目もなんと自己解決できそうです。
67
+ ご教授いただります。
72
68
 
73
69
 
74
70
 
@@ -120,9 +116,21 @@
120
116
 
121
117
  });
122
118
 
119
+ try{
120
+
123
121
  var seikou = loginData[0][1];
124
122
 
125
123
  return seikou;
124
+
125
+
126
+
127
+ }catch(e){
128
+
129
+ seikou = "該当なし";
130
+
131
+ return seikou;
132
+
133
+ }
126
134
 
127
135
  }
128
136
 

10

修正

2020/06/21 02:15

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
  <input type="button" onclick="test()" value="ここを押すとアウトプット">の
68
68
 
69
- ボタンを2回押しないと表示できません。。
69
+ ボタン押すとoutputに反映されるまで6~7秒かかります。後は、検索ヒットしなかったときの処理くらいできれば。。
70
70
 
71
71
  ここがうまくけば2つ目もなんとか自己解決できそうです。。
72
72
 

9

修正

2020/06/21 01:28

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -166,7 +166,7 @@
166
166
 
167
167
  function result(data) {
168
168
 
169
- document.getElementById("output").innerHTML = <?= kensaku(data); ?>;
169
+ document.getElementById("output").innerHTML = data;
170
170
 
171
171
  }
172
172
 

8

進捗

2020/06/21 01:21

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,17 @@
60
60
 
61
61
 
62
62
 
63
+ 【進捗】
64
+
63
- 以下のコードで1つ目に挑戦していますが、結果がmain.gsの”undefined”の方になりうまく取得できません
65
+ 以下のコードで1つ目に挑戦しています取得できるとこでいけましたしかし
66
+
67
+ <input type="button" onclick="test()" value="ここを押すとアウトプット">の
68
+
69
+ ボタンを2回押しでないと表示できません。。
70
+
71
+ ここがうまくけば2つ目もなんとか自己解決できそうです。。
72
+
73
+
64
74
 
65
75
  ```Google apps script
66
76
 
@@ -154,9 +164,9 @@
154
164
 
155
165
  google.script.run.withSuccessHandler(result).kensaku(a);
156
166
 
157
- function result() {
167
+ function result(data) {
158
168
 
159
- document.getElementById("output").innerHTML = <?= kensaku(); ?>;
169
+ document.getElementById("output").innerHTML = <?= kensaku(data); ?>;
160
170
 
161
171
  }
162
172
 

7

修正

2020/06/21 01:15

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -152,7 +152,7 @@
152
152
 
153
153
  var a= document.getElementById("input").value;
154
154
 
155
- var b = google.script.run.withSuccessHandler(result).kensaku(a);
155
+ google.script.run.withSuccessHandler(result).kensaku(a);
156
156
 
157
157
  function result() {
158
158
 

6

修正

2020/06/20 18:59

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -156,7 +156,7 @@
156
156
 
157
157
  function result() {
158
158
 
159
- document.getElementById("output_bnk").innerHTML = <?= kensaku(); ?>;
159
+ document.getElementById("output").innerHTML = <?= kensaku(); ?>;
160
160
 
161
161
  }
162
162
 

5

修正

2020/06/20 18:55

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -152,11 +152,13 @@
152
152
 
153
153
  var a= document.getElementById("input").value;
154
154
 
155
- var b = google.script.run.withSuccessHandler(a).kensaku();
155
+ var b = google.script.run.withSuccessHandler(result).kensaku(a);
156
156
 
157
- document.getElementById("output").innerHTML = b;
157
+ function result() {
158
158
 
159
+ document.getElementById("output_bnk").innerHTML = <?= kensaku(); ?>;
160
+
159
- }
161
+ }
160
162
 
161
163
  </script>
162
164
 

4

誤字

2020/06/20 18:54

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  function doGet() {
72
72
 
73
- return HtmlService.createTemplateFromFile('index')evaluate;
73
+ return HtmlService.createTemplateFromFile('index').evaluate;
74
74
 
75
75
  }
76
76
 

3

修正

2020/06/20 17:36

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -110,9 +110,9 @@
110
110
 
111
111
  });
112
112
 
113
- var bnkk = loginData[0][1];
113
+ var seikou = loginData[0][1];
114
114
 
115
- return bnkk;
115
+ return seikou;
116
116
 
117
117
  }
118
118
 

2

追加

2020/06/20 17:30

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -57,3 +57,111 @@
57
57
    実際はC~E列は数万行あるのでかならずヒットするようになっています。
58
58
 
59
59
    全2000行前提でご教授いただければ助かります。
60
+
61
+
62
+
63
+ 以下のコードで1つ目に挑戦していますが、結果がmain.gsの”undefined”の方になりうまく取得できません。
64
+
65
+ ```Google apps script
66
+
67
+ //main.gs
68
+
69
+
70
+
71
+ function doGet() {
72
+
73
+ return HtmlService.createTemplateFromFile('index')evaluate;
74
+
75
+ }
76
+
77
+
78
+
79
+ function kensaku(a) {
80
+
81
+ //HTMLからうまく取得できなければ"undefined"を返す
82
+
83
+ if (a === undefined)
84
+
85
+ {
86
+
87
+ a="undefined";
88
+
89
+ return a;
90
+
91
+ }
92
+
93
+ //HTMLからうまく取得できればスプレッドシートを検索し、検索結果を返す
94
+
95
+ else{
96
+
97
+ var text = a;
98
+
99
+ var datasheet = SpreadsheetApp.openById("スプレッドシートのID").getSheetByName("シート名");
100
+
101
+ var range = datasheet.getRange("A:A").getValues(); 
102
+
103
+ var lastRow = range.filter(String).length;
104
+
105
+ var loginData = datasheet.getRange(1, 1, lastRow, 5).getValues(); //1~lastRow行目、5列分を二次元配列として取得
106
+
107
+ loginData = loginData.filter(function(v) {
108
+
109
+ return v[0] == text;
110
+
111
+ });
112
+
113
+ var bnkk = loginData[0][1];
114
+
115
+ return bnkk;
116
+
117
+ }
118
+
119
+ }
120
+
121
+
122
+
123
+
124
+
125
+ //index.html
126
+
127
+
128
+
129
+ //略
130
+
131
+ 1つ目
132
+
133
+ <input type="number" id="input">
134
+
135
+
136
+
137
+ <!--このボタンを押すと下のスクリプト動作-->
138
+
139
+ <input type="button" onclick="test()" value="ここを押すとアウトプット">
140
+
141
+
142
+
143
+ <!--ここで表示するが、"undefined"が表示されてしまう。-->
144
+
145
+ <div id="output"></div>
146
+
147
+
148
+
149
+ <script>
150
+
151
+ function test() {
152
+
153
+ var a= document.getElementById("input").value;
154
+
155
+ var b = google.script.run.withSuccessHandler(a).kensaku();
156
+
157
+ document.getElementById("output").innerHTML = b;
158
+
159
+ }
160
+
161
+ </script>
162
+
163
+ //略
164
+
165
+
166
+
167
+ ```

1

誤記

2020/06/20 17:29

投稿

MasakiTM
MasakiTM

スコア115

test CHANGED
File without changes
test CHANGED
@@ -10,13 +10,13 @@
10
10
 
11
11
  A列:2000行まで1~2000の数値が順に入力されています。
12
12
 
13
- B列:2000行まで全てに固有の値が入っています。
13
+ B列:2000行まで全てにバラバラの値が入っています。
14
14
 
15
15
  C列:2000行まで1~2000の数値がランダムに入力されています。
16
16
 
17
17
  D列:2000行まで1~2000の数値がランダムに入力されています。
18
18
 
19
- E列:2000行まで全てに固有の値が入っています。
19
+ E列:2000行まで全てにバラバラの値が入っています。
20
20
 
21
21
 
22
22