Как объединить строки в Google Sheets - PullRequest
0 голосов
/ 18 декабря 2018

Я пытался откопать этот материал, но у меня нет решения, поэтому я надеюсь, что кто-нибудь может помочь.У меня есть лист со следующими данными:

Данные

123|456|789        
111|222|333        

и т. Д. *

Необходимый результат

|123 456 789|        
|111 222 333|        

и т. Д.

Я пытаюсь избегать формул (=Concat) и (=A2&" "&B2&" "&C2) и т. Д. ...

Я пытался sheet.getRange(2,1,1,2).mergeAcross();и он объединил клетки и сохранил его крайнюю левую ценность.Поиски в Google указывают на решение формулы.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Вы можете попробовать Array.join() для каждой строки:

Фрагмент:

var jointRowsArray = sheet
  .getRange(2, 1, 2, 3) //A2:C4
  .getValues()
  .map(function(row) { 
    return [row.join(' ')];//join Each row
  });
sheet.getRange(2, 4, jointRowsArray.length, 1).setValues(jointRowsArray);

Чтобы прочитать:

0 голосов
/ 18 декабря 2018
var range  = sheet.getRange(2,1,1,2)  
var values = range.getValues()

range.clearContent()

sheet.getRange(2,1).setValue(values.join(' '));

Вы можете вытянуть значения в JS, а затем соединить и вставить их в одну ячейку.Вы также можете поместить это в итератор и сделать что-то похожее на getRange(i,1,1,2).Это может быть вызвано вручную или с помощью редактора.

Однако это выглядит как идеальное соответствие для одной формулы.

=TRANSPOSE(QUERY(TRANSPOSE(A:C),,COLUMNS(A:C)))

Формула будет продолжатьсяпервая строка, возможно, в столбце D. JOIN функции обычно не могут быть расположены в листах Google, и обычно для каждой строки обычно приходится вводить формулу.Однако здесь мы обманываем лист, думая, что наши данные - это заголовок, и отображаем его соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...