回答編集履歴
1
a
answer
CHANGED
@@ -2,26 +2,26 @@
|
|
2
2
|
|
3
3
|
```javascript
|
4
4
|
const q375824 = () => {
|
5
|
-
|
5
|
+
const sheetName = `シート1`;
|
6
|
-
|
6
|
+
const sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
|
7
|
-
|
7
|
+
const values = sheet.getDataRange().getValues();
|
8
|
-
|
8
|
+
const colBAll = values.map(([,e])=>[e]).slice(1);
|
9
|
-
|
9
|
+
const terminate = colBAll.findIndex(e=>e[0] === "");
|
10
|
-
|
10
|
+
const colBs = terminate !== -1 ? colBAll.slice(0,terminate+1) : colBAll.slice(0);
|
11
|
-
|
11
|
+
const formattedDate = Utilities.formatDate(colBs[0][0],"Asia/Tokyo","M/dd");
|
12
|
-
|
12
|
+
const finder = sheet.createTextFinder(formattedDate);
|
13
|
-
|
13
|
+
const matchedDates = finder.findAll();
|
14
|
-
|
14
|
+
if(matchedDates.length !== 2) {
|
15
|
-
|
15
|
+
console.log("wrong calendar settings");
|
16
|
-
|
16
|
+
return;
|
17
|
-
|
17
|
+
}
|
18
|
-
|
18
|
+
const targetColumn = matchedDates[1].getColumn();
|
19
|
-
|
19
|
+
const colPrevious = values.map(e=>[e[targetColumn-2]]).slice(1);
|
20
|
-
|
20
|
+
if(isSame(colBs.slice(1),colPrevious.slice(1))) {
|
21
|
-
|
21
|
+
console.log("same data");
|
22
|
-
|
22
|
+
return;
|
23
|
-
|
23
|
+
}
|
24
|
-
|
24
|
+
sheet.getRange(2,targetColumn,colBs.length,1).setValues(colBs);
|
25
25
|
}
|
26
26
|
const isSame = (a,b) => a.every((e,i)=>e[0] === b[i][0]);
|
27
27
|
```
|