質問編集履歴

11

データの変更をおこないました。

2021/01/14 00:08

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  function 勤怠() {
24
24
 
25
- var sheet1 = SpreadsheetApp.openById('1tIjXivR9bVB0_7edrBhtv9z7lKI5zuz7bEPa_kawP_w');// 【つくば2】入出庫_シフト
25
+ var sheet1 = SpreadsheetApp.openById('*********');
26
26
 
27
27
  var date = new Date(); //現在日時のDateオブジェクトを作る
28
28
 
@@ -34,7 +34,7 @@
34
34
 
35
35
  var sh1 = sheet1.getSheetByName("勤怠");
36
36
 
37
- var sh5 = sheet1.getSheetByName(yesterday + '月1部');//【つくば2】入出庫_10月シフ
37
+ var sh5 = sheet1.getSheetByName(yesterday + '月1部');//【ト
38
38
 
39
39
  var col = sh5.getRange(7,3).getValues();
40
40
 

10

タグを追加しました。

2021/01/14 00:08

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
File without changes

9

コード自体は動くのですが、処理速度が遅いです。

2021/01/10 04:31

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
@@ -1 +1 @@
1
- GASの配列を使用して文字入力
1
+ GASの配列を使用して文字入力する速度を速めたい
test CHANGED
@@ -1,8 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- TRUE判定が下った時のみ、該当のセル1つに欠勤の文字入力たい
3
+ GAS配列を使用して文字入力する速度を速めたい
4
-
5
-
6
4
 
7
5
 
8
6
 
@@ -12,15 +10,13 @@
12
10
 
13
11
  以下のコードで上記に記載の内容を実現したいのですが、
14
12
 
15
- プログラム実行後のセルを確認すとすべてのセに欠勤の文字が入ってしいます
13
+ 処理速度が遅く、現場で使用できレベではありせん
16
14
 
17
15
 
18
16
 
19
17
  ### 該当のソースコード
20
18
 
21
19
 
22
-
23
- ```ここに言語を入力
24
20
 
25
21
  ```GAS
26
22
 
@@ -48,31 +44,29 @@
48
44
 
49
45
  var ary2 = sh5.getRange(10,6,i,1).getValues();
50
46
 
51
- var ary3 = sh1.getRange("A1").getValues();
47
+ var ary3 = sh1.getRange("A6:A32")
52
48
 
53
- var ary4 = sh1.getRange("A3").getValues();
49
+ for(let j = 0; j < ary2.length ;j++){
54
50
 
55
- for(let j = 0; j < ary1.length ;j++){
51
+ var KEY=ary2[j][0]
56
52
 
57
- ary3[0][0]=ary2[j][0]
53
+ if (ary3.createTextFinder(KEY).findNext()) {
58
54
 
59
- sh1.getRange("A1").setValues(ary3)
60
-
61
- if(ary4[0][0]=="TRUE"){
55
+ Logger.log("存在します!");
62
56
 
63
57
  ary1[j][0]="欠勤"
64
58
 
65
- sh5.getRange(10+j,col).setValue(ary1);
59
+ sh5.getRange(10+j,col).setValue(ary1);
60
+
61
+ }
66
62
 
67
63
  }
68
64
 
69
65
  }
70
66
 
71
- }
67
+ ```
72
68
 
73
-
74
-
75
- ```
69
+
76
70
 
77
71
 
78
72
 
@@ -85,21 +79,3 @@
85
79
 
86
80
 
87
81
  ### 補足情報(FW/ツールのバージョンなど)
88
-
89
-
90
-
91
- 尚、A1、A2、A3内のセル上の式や役割に関しては以下をご確認下さい。
92
-
93
- ※A1の役割:シフト上から名前をとってきてfor文で回して1人づつ記載する
94
-
95
-
96
-
97
- ※A2の式:=QUERY(A6:A32,"Where A='"&A1&"'")
98
-
99
- ⇒A1セルに出た名前がA6~A32にあれば同様の名前を返す
100
-
101
-
102
-
103
- ※A3の式:=A1=A2 
104
-
105
- ⇒こちらがイコールで結ばれるとA3にTRUEが入る

8

タグを追加しました。

2021/01/08 11:31

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
File without changes

7

修正いたしました。

2021/01/08 00:37

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
@@ -19,6 +19,8 @@
19
19
  ### 該当のソースコード
20
20
 
21
21
 
22
+
23
+ ```ここに言語を入力
22
24
 
23
25
  ```GAS
24
26
 
@@ -70,6 +72,8 @@
70
72
 
71
73
 
72
74
 
75
+ ```
76
+
73
77
 
74
78
 
75
79
  ### 試したこと

6

コードの一部を修正致しました。

2021/01/08 00:08

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  sh1.getRange("A1").setValues(ary3)
58
58
 
59
- if(ary4[0][0]="TRUE"){
59
+ if(ary4[0][0]=="TRUE"){
60
60
 
61
61
  ary1[j][0]="欠勤"
62
62
 
@@ -68,13 +68,7 @@
68
68
 
69
69
  }
70
70
 
71
- ```
72
71
 
73
- ```
74
-
75
-
76
-
77
- ```
78
72
 
79
73
 
80
74
 

5

セル上の式と役割に関して記載いたしました。

2021/01/08 00:07

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
@@ -20,23 +20,23 @@
20
20
 
21
21
 
22
22
 
23
- ```ここに言語を入力
23
+ ```GAS
24
24
 
25
25
  function 勤怠() {
26
26
 
27
- var sheet1 = SpreadsheetApp.openById('*************************');//
27
+ var sheet1 = SpreadsheetApp.openById('1tIjXivR9bVB0_7edrBhtv9z7lKI5zuz7bEPa_kawP_w');// 【つくば2】入出庫_シフト
28
28
 
29
- var date = new Date(); //
29
+ var date = new Date(); //現在日時のDateオブジェクトを作る
30
30
 
31
- var day = date.getDate();//
31
+ var day = date.getDate();//現在の「日」を取得
32
32
 
33
33
  date.setDate(day+1);//前日日付にしたいので-1する
34
34
 
35
- var yesterday = Utilities.formatDate(date, 'JST', 'MM');//
35
+ var yesterday = Utilities.formatDate(date, 'JST', 'MM');//日付の表示形式を整形する
36
36
 
37
37
  var sh1 = sheet1.getSheetByName("勤怠");
38
38
 
39
- var sh5 = sheet1.getSheetByName(yesterday + '月1部');//
39
+ var sh5 = sheet1.getSheetByName(yesterday + '月1部');//【つくば2】入出庫_10月シフト
40
40
 
41
41
  var col = sh5.getRange(7,3).getValues();
42
42
 
@@ -56,9 +56,9 @@
56
56
 
57
57
  sh1.getRange("A1").setValues(ary3)
58
58
 
59
- if(ary4="TRUE"){
59
+ if(ary4[0][0]="TRUE"){
60
60
 
61
- ary1[j] ="欠勤"
61
+ ary1[j][0]="欠勤"
62
62
 
63
63
  sh5.getRange(10+j,col).setValue(ary1);
64
64
 
@@ -67,6 +67,10 @@
67
67
  }
68
68
 
69
69
  }
70
+
71
+ ```
72
+
73
+ ```
70
74
 
71
75
 
72
76
 
@@ -86,6 +90,18 @@
86
90
 
87
91
 
88
92
 
89
- 尚、A3のTRUEの判定を下すセルに関してはセル上に数式直接入力して判定をくだしてます
93
+ 尚、A1、A2、A3のセル上の式や役割に関しては以下ご確認下さい。
90
94
 
95
+ ※A1の役割:シフト上から名前をとってきてfor文で回して1人づつ記載する
96
+
97
+
98
+
99
+ ※A2の式:=QUERY(A6:A32,"Where A='"&A1&"'")
100
+
101
+ ⇒A1セルに出た名前がA6~A32にあれば同様の名前を返す
102
+
103
+
104
+
105
+ ※A3の式:=A1=A2 
106
+
91
- ※A3の式:=A1=A2 こちらがイコールで結ばれるとA3にTRUEが入る仕組みです。
107
+ こちらがイコールで結ばれるとA3にTRUEが入る

4

セルA3の数式の仕組みを記載しました。

2021/01/08 00:04

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
@@ -86,4 +86,6 @@
86
86
 
87
87
 
88
88
 
89
- 尚、TRUEの判定を下すセルに関してはセル上に数式を直接入力して判定をくだしています。
89
+ 尚、A3のTRUEの判定を下すセルに関してはセル上に数式を直接入力して判定をくだしています。
90
+
91
+ ※A3の式:=A1=A2 こちらがイコールで結ばれるとA3にTRUEが入る仕組みです。

3

タグを追加しました。

2021/01/07 23:49

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
File without changes

2

コードの挿入にて挿入させて頂きました。どうぞ、よろしくお願い致します。

2021/01/07 09:28

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
File without changes
test CHANGED
@@ -19,6 +19,8 @@
19
19
  ### 該当のソースコード
20
20
 
21
21
 
22
+
23
+ ```ここに言語を入力
22
24
 
23
25
  function 勤怠() {
24
26
 
@@ -68,6 +70,8 @@
68
70
 
69
71
 
70
72
 
73
+ ```
74
+
71
75
 
72
76
 
73
77
  ### 試したこと

1

言語の記載がありませんでしたが、こちらGASでのプログラムとなります。

2021/01/06 11:39

投稿

Nihsi2407
Nihsi2407

スコア5

test CHANGED
@@ -1 +1 @@
1
- 配列を使用して文字入力
1
+ GASの配列を使用して文字入力
test CHANGED
File without changes