これを
こうしたい
A1 あいうえお
A2 かきくけこ
A3 さしすせそ
A4 空白行
A5 たちつてと
A6 なにぬねの
A7 空白行
A8 はひふへほ
A9 まみむめも
A10 空白行
A11 やゆよ
A12 らりるれろ
A13 空白行
A14 わをん
A1 あいうえお\nかきくけこ\nさしすせそ
A2 たちつてと\nなにぬねの
A3 はひふへほ\nまみむめも
A4 やゆよ\nらりるれろ
A5 わをん
きっともっとシンプルな方法があるはずですが、思い浮かんだ方法で書きました。
コード.gs
function mergeRows(){ var sheet = SpreadsheetApp.getActiveSheet(); var activeRange = sheet.getActiveRange(); var activeRow = activeRange.getRow(); var activeCol = activeRange.getColumn(); var lastRow = sheet.getLastRow(); var targetRange = sheet.getRange(activeRow, activeCol, lastRow-activeRow+1, 1); var targetValues = targetRange.getValues(); var sectionValues = ''; var resultArrays = []; for(var i = 0; i < targetValues.length; i++) { if(targetValues[i][0] === "") { sectionValues += "\n" } else { sectionValues += targetValues[i][0] + "\n" } } targetRange.clear(); var splitBreaks = sectionValues.split("\n\n"); for(var i = 0; i < splitBreaks.length; i++) { resultArrays.push([splitBreaks[i]]) } setValues(resultArrays) } function setValues(arrays){ var sheet = SpreadsheetApp.getActiveSheet(); var last_row = sheet.getLastRow(); var start_row = last_row + 1; var start_col = 1; var num_rows = arrays.length; var num_cols = 1 var range = sheet.getRange(start_row, start_col, num_rows, num_cols); range.setValues(arrays); } |