2014-03-28 4 views
2

У меня есть столбец на моем листе, который содержит данные формы, представленные через форму Google Forms. Это дает список разделенных запятыми значений (CSV) на листе из-за множественного выбора в форме. Пример:Вычислить частоту слов из столбца с CSV в ячейках

screenshot

Я хочу, чтобы вычислить частоту каждого «метки» используется. Для того, чтобы произвести что-то вроде:

screenshot

Я нашел эту формулу (кредит @AdamL), который был фантастическим для расчета частоты отдельных слов в полном стечении целого столбца:

=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(" ";B3:B);" ")&{"";""});"select Col1, count(Col2) group by Col1 order by count(Col2) desc limit 10 label Col1 'Word', count(Col2) 'Frequency'";0)) 

Однако я не мог найти способ изменить его, чтобы разделить на сгенерированные поля запятой (или запятой и пространством), а не просто пространством (которое, разумеется, производит отдельные слова в каждом поле). Надеюсь, это имеет смысл.

Пытался заменить разделитель в регистрации с «» на «» и «» - никакой радости :(

Любые идеи

ответ

1

изменить его разделить на сгенерированных полей через запятую? . (или запятая и пробел), а не просто пространство

Это как JOIN и функция SPLIT вам нужно прикоснуться к этому Вместо SPLIT(JOIN(" ";B3:B);" "), попробуйте:

SPLIT(JOIN(", ";B3:B);", ") 
      ^^   ^^ 

Таким образом, JOIN поставит клетку вместе с двумя символами разделителями, ", ", который является тем же разделителем вы получаете из формы. Затем SPLIT будет принимать все ", ", как из JOIN, так и из формы, и разбить отдельные термины. Пространство между словами сохранится.

И вы будете иметь:

=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(", ",B2:B),", ",false)&{"";""}),"select Col1, count(Col2) group by Col1 order by count(Col2) desc limit 10 label Col1 'Word', count(Col2) 'Frequency'",0)) 

screenshot

+0

Как о том, этот случай запроса нечувствительным? Как бы вы это сделали? – leontalbot

+0

@leontalbot - вы должны задать это как новый вопрос, который ссылается на этот ответ для контекста и атрибуции. Другие, скорее всего, найдут его и получат от этого выгоду. – Mogsdad

+0

'...' 'JOIN (", ", LOWER (B2: B))' '...' Отметим, что 'PROPER()' систематически использует первую букву, что еще лучше ... – leontalbot

Смежные вопросы