質問編集履歴

3

情報の追加

2018/12/26 09:49

投稿

SnowMonkey
SnowMonkey

スコア53

test CHANGED
File without changes
test CHANGED
@@ -36,9 +36,9 @@
36
36
 
37
37
  indexOf(3)なら動作するのですが、
38
38
 
39
- 3の代わりに変数を入れると正しく検索できません。
39
+ 3の代わりに変数を入れると正しく検索できません。何か良
40
40
 
41
-
41
+ い方法がないでしょうか
42
42
 
43
43
  var row= arrTrans[SEARCH_COL].indexOf(3); //だと10を返す これが正解
44
44
 
@@ -48,7 +48,21 @@
48
48
 
49
49
 
50
50
 
51
- 何か良い方法がないしょうか
51
+ ログは以下の通り
52
+
53
+
54
+
55
+ [18-12-26 01:46:45:536 PST] 2.0 //Logger.log(Key_Word);
56
+
57
+ [18-12-26 01:46:45:537 PST] 3//Logger.log(Key);
58
+
59
+ [18-12-26 01:46:45:537 PST] 10.0//Logger.log(row);
60
+
61
+ [18-12-26 01:46:45:537 PST] 3.0//Logger.log(row1);
62
+
63
+
64
+
65
+
52
66
 
53
67
  ```
54
68
 
@@ -60,37 +74,71 @@
60
74
 
61
75
  ```Google Apps Script
62
76
 
63
- var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート');
77
+ var MAIL_ADDRESS = "*****@co.jp";
64
78
 
65
- var Key_Word=3 ;//検索値 今回は第3週を検索するとします
79
+ var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート53');
66
80
 
67
- var SEARCH_COL=10;//検索する列 11列目にその週が第何週か記入されています
81
+ var Key_Word=3;//検索
68
82
 
69
- var Key=String(Key_Word); //型を文字型に変えてみた
83
+ var SEARCH_COL=10;//検索する列
70
84
 
71
-
85
+ var Key=String(Key_Word);
72
86
 
73
87
  function searchSheet(){
74
88
 
75
89
  var arrData = mySheet.getDataRange().getValues();
76
90
 
77
- /*indexOfで検索 ---ライブラリUnderscore for GASを利用して、行列を入れ替えたのちに---*/
91
+ /*indexOfで高速検索 ---ライブラリUnderscore for GASを利用して、行列を入れ替え---*/
78
92
 
79
93
  var _ = Underscore.load();
80
94
 
81
95
  var arrTrans = _.zip.apply(_, arrData);
82
96
 
83
-
97
+ var row= arrTrans[SEARCH_COL].indexOf(3); //検索値の出てきた最初の行番号-1を返す
84
98
 
85
- //var row= arrTrans[10].indexOf(3); // 第3週の月曜日 これは期待通り検索できた
86
-
87
- //var row= arrTrans[SEARCH_COL].indexOf(3); //これも検索出来た
88
-
89
- var row= arrTrans[SEARCH_COL].indexOf(Key_Word); //これは検索なかっ。Keyに変えても
99
+ var row1= arrTrans[SEARCH_COL].indexOf(Key_Word); //検索値の出てきた最初の行番号-1を返す
90
100
 
91
101
 
92
102
 
103
+ //var row= arrTrans[10].indexOf(3); //検索値の出てきた最初の行番号-1を返す
104
+
105
+
106
+
107
+ Logger.log(Key_Word);
108
+
109
+ Logger.log(Key);
110
+
111
+ Logger.log(row);
112
+
113
+ Logger.log(row1);
114
+
115
+ /*
116
+
117
+ Logger.log(Object.prototype.toString.call(Key_Word));
118
+
119
+ Logger.log(Object.prototype.toString.call(Key));
120
+
121
+
122
+
123
+ Logger.log(row);
124
+
125
+ Logger.log(row1);
126
+
127
+
128
+
129
+ for(var i = row; i <= row+10; i++) {
130
+
131
+ Logger.log(arrData[i][1]+'/'+arrData[i][2]+arrData[i][3]+arrData[i][11]+'\n' );
132
+
93
- }
133
+ }
134
+
135
+ */
136
+
137
+
138
+
139
+ }
140
+
141
+
94
142
 
95
143
  ```
96
144
 

2

スプレッドシートの画像を掲載

2018/12/26 09:49

投稿

SnowMonkey
SnowMonkey

スコア53

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
-
25
+ ![![スプレッドシート](97fe28dd4c691a3c953a92173dd74121.png)](0571efd1bb3ea3d12b8055055fa503af.png)
26
26
 
27
27
 
28
28
 

1

発生している問題を詳述しました

2018/12/26 08:32

投稿

SnowMonkey
SnowMonkey

スコア53

test CHANGED
File without changes
test CHANGED
@@ -36,11 +36,17 @@
36
36
 
37
37
  indexOf(3)なら動作するのですが、
38
38
 
39
- 3の代わりに変数を入れると検索できません。
39
+ 3の代わりに変数を入れると正しく検索できません。
40
40
 
41
41
 
42
42
 
43
- その日によって第何週かが変わるので変数用いたいで
43
+ var row= arrTrans[SEARCH_COL].indexOf(3); //だと10 これが正解
44
+
45
+ var row1= arrTrans[SEARCH_COL].indexOf(Key_Word); //だと3を返す
46
+
47
+
48
+
49
+
44
50
 
45
51
  何か良い方法がないでしょうか
46
52