回答編集履歴

2

a-e列のみ

2023/01/12 17:01

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -4,10 +4,10 @@
4
4
  function writeCompletedTasks() {
5
5
  const ss = SpreadsheetApp.getActiveSpreadsheet(); // スプシを取得
6
6
  const originalSheet = ss.getActiveSheet(); // 現在開いているシートを取得
7
- const completedTasks = originalSheet.getDataRange().getValues().filter(arr => arr[5] === '完了'); // 「完了」の行だけ取得
7
+ const completedTasks = originalSheet.getDataRange().getValues().filter(arr => arr[5] === '完了').map(arr => arr.slice(0, -1)); // 「完了」の行だけ取得
8
8
  // [
9
- // [ '田中', '○', Sat Jan 01 2022 00:00:00 GMT+0900 (Japan Standard Time), '○', Sat Jan 01 2022 00:00:00 GMT+0900 (Japan Standard Time), '完了' ],
9
+ // [ '田中', '○', Sat Jan 01 2022 00:00:00 GMT+0900 (Japan Standard Time), '○', Sat Jan 01 2022 00:00:00 GMT+0900 (Japan Standard Time) ],
10
- // [ '佐藤', '○', Mon Jan 03 2022 00:00:00 GMT+0900 (Japan Standard Time), '', Mon Jan 03 2022 00:00:00 GMT+0900 (Japan Standard Time), '完了' ]
10
+ // [ '佐藤', '○', Mon Jan 03 2022 00:00:00 GMT+0900 (Japan Standard Time), '', Mon Jan 03 2022 00:00:00 GMT+0900 (Japan Standard Time) ]
11
11
  // ]
12
12
 
13
13
  if (!completedTasks.length) return; // 該当0件の場合、ここで処理を終了(以降の行は実行されない)

1

2行目以降に転記

2023/01/12 15:27

投稿

Cocode
Cocode

スコア2314

test CHANGED
@@ -13,8 +13,6 @@
13
13
  if (!completedTasks.length) return; // 該当0件の場合、ここで処理を終了(以降の行は実行されない)
14
14
 
15
15
  const compSheet = ss.getSheetByName('Sheet2'); // 「Sheet2」を取得
16
- for (const task of completedTasks) {
17
- compSheet.appendRow(task); // 最終行に追加して内容を転記
16
+ compSheet.getRange(2, 1, completedTasks.length, completedTasks[0].length).setValues(completedTasks); // 2目以降、情報を転記
18
- }
19
17
  }
20
18
  ```