3年前の私ですね。
マージする範囲内に空白行はないことが前提でスクリプトを書いています。
空白は空白同士でマージしたい…ということであればさらに工夫が必要です。
js
1function myFunc() {
2 const colNo = 1; // マージする列番号(A:1 , B:2 ,...)
3 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート1");
4
5 const data = sheet.getDataRange().getValues();
6 Logger.log(data);
7
8 const mergeData = data.reduce((acc, cur) => {
9 const targetValue = cur[colNo - 1];
10 if(acc.length === 0) {
11 acc.push({value:targetValue, count: 1});
12 } else if (targetValue === '') {
13 acc[acc.length - 1].count++;
14 } else if (targetValue === acc[acc.length -1].value) {
15 acc[acc.length - 1].count++;
16 } else {
17 acc.push({value:targetValue, count: 1});
18 }
19 return acc;
20 },[]);
21
22 mergeData.reduce((acc, x) => {
23 if(x.count > 1) {
24 sheet.getRange(acc, colNo, x.count).merge();
25 }
26 acc += x.count;
27 return acc;
28 }, 1);
29}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/14 02:08
2021/09/14 02:24
2021/09/14 02:40
2021/09/16 05:56