回答編集履歴

2

a

2019/08/19 08:42

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  a.push(row1);
52
52
 
53
- if(c[5] !== "") {
53
+ if(c[5] && c[5] !== "") {
54
54
 
55
55
  var row2 = ["","","",c[5]];
56
56
 

1

a

2019/08/19 08:42

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -10,4 +10,60 @@
10
10
 
11
11
  だと思いますが、転記ができない、はまた別な気がします。
12
12
 
13
+
14
+
13
- 11行目以降をクリアしてのはういう意図なんしょう
15
+ やりたいのは、こういうことね?
16
+
17
+ ```javascript
18
+
19
+ function q205227() {
20
+
21
+
22
+
23
+ //スプレッドシートAppを呼び出す
24
+
25
+ const ss = SpreadsheetApp.getActiveSpreadsheet();
26
+
27
+ //アクティブシートを取得する
28
+
29
+ const sheet = ss.getSheetByName("請求書");//data反映先
30
+
31
+ const areaA11I90 = sheet.getRange("A11:I90");
32
+
33
+
34
+
35
+ sheet.unhideRow(areaA11I90);
36
+
37
+ sheet.getRange(11, 1, 34, 7).clearContent();//Iは9だが?
38
+
39
+
40
+
41
+ const areaJO = sheet.getRange('J:O'); //J~O列に値を抜く
42
+
43
+ const LastRow = areaJO.getLastRow(); //これtホントにJ:Oの最終行取ってくれます?
44
+
45
+ const data = sheet.getRange(11, 10/* Jは10 */, LastRow, 6).getValues().reduce(function(a,c){
46
+
47
+ if(c[0] !== "〇") return a;
48
+
49
+ var row1 = [c[1],c[1],c[2],c[3]];
50
+
51
+ a.push(row1);
52
+
53
+ if(c[5] !== "") {
54
+
55
+ var row2 = ["","","",c[5]];
56
+
57
+ a.push(row2);
58
+
59
+ }
60
+
61
+ return a;
62
+
63
+ },[]);
64
+
65
+ sheet.getRange(11, 1, data.length, 4).setValues(data);
66
+
67
+ }
68
+
69
+ ```