Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2019年11月21日木曜日

複数行のセルの値を一つのセルに入れたい(スクリプト)



これを

こうしたい


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); 
}




Latest post

Google Formsで記述式の質問に字数制限を設定したい

記述式の質問には「回答の検証」を設定することができます フォームの編集画面 右下の︙メニューで「回答の検証」を選択します 検証方法には「数値」「テキスト」「長さ」「正規表現」という種類があります 今回は字数制限したいので「長さ」を選びます 長さには「最大文字数」か「最小文字数」を...