回答編集履歴

1

2021/10/14 09:53

投稿

papinianus
papinianus

スコア12705

test CHANGED
@@ -87,3 +87,29 @@
87
87
  ただ、そもそもループが 1 からはじまっているので、現在のデータでは動くが 4 行目をちゃんと削除した場合に 1 行しか出力できなくなるので、全体に見直したほうがよさそうです。
88
88
 
89
89
  getDataRange は人間が思ってもない範囲を使っている範囲と思うのでご注意ください。
90
+
91
+
92
+
93
+ こんな感じですかね。いまのところわざわざ object 作らなくても良さそうなので 1 行でできそうです。
94
+
95
+ ```javascript
96
+
97
+ const q364329 = () => {
98
+
99
+ const spreadsheet = SpreadsheetApp.getActive("https://***");
100
+
101
+ const sheet = SpreadsheetApp.getActiveSheet();
102
+
103
+ const values = sheet.getDataRange().getValues();
104
+
105
+ const [day, field, num] = values[0];
106
+
107
+ const data = values.slice(1).filter(e=> e[0] !== "").map(e=> ({[day]:e[0],[field]:e[1],[num]:e[2]})).reverse();
108
+
109
+ return `<li>${data.reduce((a,c)=> `${a} <div>日付${c[day]} ${c[field]} 番号${c[num]}</div></li>`,"")}</li>`;
110
+
111
+ }
112
+
113
+ const q364329_2 = () => `<li>${SpreadsheetApp.getActiveSheet().getDataRange().getValues().slice(1).filter(e=> e[0] !== "").reverse().reduce((a,c)=> `${a} <div>日付${c[0]} ${c[1]} 番号${c[2]}</div></li>`,"")}</li>`;
114
+
115
+ ```