2016-11-20 2 views
1

У меня есть Лист Google, который получает данные из формы, в которой мне нужно, чтобы одна ячейка из представления была разделена на столбцы на конкретном разделителе. Я использовал функцию «Разделить текст в столбцы» в меню «Данные», которая отлично работает, но мне нужно, чтобы это происходило каждый раз, когда была отправлена ​​новая форма.Google Sheet Split Text To Column automation

Таким образом, триггер «на форме submit» разбивает данные в ячейке C на ячейки C, D и E, используя разделитель «>».

Спасибо за помощь!

ответ

1

Вы можете сделать это с помощью собственной функции, используя REGEXREPLACE и буквальную формулу массива:

=arrayformula(if(istext(A1:A),{arrayformula(REGEXREPLACE(A1:A,">.*","")),arrayformula(regexextract(A1:A,"^.*>(.*)>.*$")),arrayformula(REGEXREPLACE(A1:A,"^.*>",""))},)) 

enter image description here

Причина ArrayFormula делает работу за это и потому, что я включил if is text части, она будет только расширяйте формулу до этой строки, как только ваши данные импортируются формой, но она не будет блокировать строки от импорта, поскольку это только одна формула в первой строке.

+0

Массивная формула определенно является способом t o go, но обратите внимание, что пустые строки не будут считаться пустыми, поскольку ячейки будут иметь значение "". Поэтому будьте осторожны при проведении дальнейших испытаний в дополнительных формулах. –

+0

@Karl_S Строки не имеют значения "", потому что я намеренно закончил утверждение, и ничего больше, а не ", –

+0

Nice. Я не знал об этом. Спасибо. RE формулу, следующее редактирование позволяет ей быть в строке 1 и использовать эту строку в качестве строки заголовка. Вы вручную добавляете заголовок для столбца A, он добавляет их в столбцы B-D. Это ограничивает возможность его перезаписи другими. Я также использовал комбо Not IsBlank, чтобы показать другую опцию теста: '= arrayformula (if (not (isblank (A1: A)), IF (ROW (A1: A) = ROW (A1), {" Параметр 1 "," Параметр 2 "," Параметр 3 "}, {arrayformula (REGEXREPLACE (A1: A,">. * "," ")), Arrayformula (regexextract (A1: A," ^. *> (. *)>. * $ ")), arrayformula (REGEXREPLACE (A1: A," ^. *> "," "))}),))' –