LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

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




最新の投稿

JIRA APIで選択リスト(複数選択)を課題作成時に選択してPOSTしたい

JIRA APIを利用して選択リスト(複数選択)フィールドに値を入れたくて書いたコードです。 コード.gsのこの部分で複数選択の値を選択できました。 customfield_10043 は手元のJIRAでの選択リスト(複数選択)のフィールドIDなので、各自の環境によって異なります...