回答編集履歴

3

あほだった

2018/08/03 14:22

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  .filter(function(element, index, array) { //2ではじまる名前だけにする
26
26
 
27
- return (element[0] != '2');
27
+ return (element[0] == '2');
28
28
 
29
29
  })
30
30
 

2

不親切なのを直す

2018/08/03 14:22

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -8,47 +8,59 @@
8
8
 
9
9
  ```javascript
10
10
 
11
+ // このスプレッドシートをソートしてくれるやつ
12
+
11
13
  function sortSheets() {
12
14
 
13
15
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
14
16
 
15
- var sheetNames = spreadsheet.getSheets()
17
+ var sheetNames = spreadsheet.getSheets() //シート名の配列を得る
16
18
 
17
- .map(function(element, index, array) {
19
+ .map(function(element, index, array) { //名前だけにする
18
20
 
19
21
  return element.getName();
20
22
 
21
23
  })
22
24
 
23
- .filter(function(element, index, array) {
25
+ .filter(function(element, index, array) { //2ではじまる名前だけにする
24
26
 
25
27
  return (element[0] != '2');
26
28
 
27
29
  })
28
30
 
29
- .sort(compareDateLikeStr);
31
+ .sort(compareDateLikeStr); // 日付を文字列じゃなくて色々と考えて降順ソート
30
32
 
33
+
34
+
31
- for(var i = 0; i < sheetNames.length; i++) {
35
+ for(var i = 0; i < sheetNames.length; i++) { // シート名がソート済みなので、一つずつ移動させる
32
36
 
33
37
  var cur = spreadsheet.getSheetByName(sheetNames[i]);
34
38
 
35
39
  cur.activate();
36
40
 
37
- spreadsheet.moveActiveSheet(i + 3);
41
+ spreadsheet.moveActiveSheet(i + 4);
38
42
 
39
43
  }
40
44
 
41
45
  }
42
46
 
43
- function sortTest() {
44
47
 
48
+
49
+ function sortTest() { //テスト用
50
+
45
- var t = ["2018.1.1", "2018.1.11", "2017.1.11"];
51
+ var t = ["2018.1.1", "2018.1.11", "2017.1.11"]; //実際のシート名を入れてみてソートされるか確認してください
46
52
 
47
53
  t.sort(compareDateLikeStr);
48
54
 
49
- Logger.log(t);
55
+ Logger.log(t); // 結果として、並んでいるかログで見てください
50
56
 
51
57
  }
58
+
59
+
60
+
61
+ // 日付っぽい文字列をソート(降順)
62
+
63
+ // .で3つに区切れるはずなので、それを数値化して、年>月>日で比較する。
52
64
 
53
65
  function compareDateLikeStr(a, b) {
54
66
 
@@ -86,6 +98,6 @@
86
98
 
87
99
  今からは困難でしょうが、将来の参考として
88
100
 
89
- 0. 2018.07.31, 2018.08.01となっているとソートが非常に楽です。
101
+ 0. 2018.07.31, 2018.08.01となっているとソートが非常に楽です。//compareなんちゃらが不要になる
90
102
 
91
103
  0. テンプレートからのコピーが完全手動でなくていいなら、コピー時に思った場所にインサートするのがいいのかなーと妄想しました(そういうコピーがGASでできるかは未調査)

1

蛇足

2018/08/02 07:40

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -79,3 +79,13 @@
79
79
  }
80
80
 
81
81
  ```
82
+
83
+
84
+
85
+ --蛇足
86
+
87
+ 今からは困難でしょうが、将来の参考として
88
+
89
+ 0. 2018.07.31, 2018.08.01となっているとソートが非常に楽です。
90
+
91
+ 0. テンプレートからのコピーが完全手動でなくていいなら、コピー時に思った場所にインサートするのがいいのかなーと妄想しました(そういうコピーがGASでできるかは未調査)