У меня есть данные Google Form из нескольких проведенных опросов, в которых категории ответов менялись во времени. Я хочу выяснить все уникальные варианты, которые были использованы, а затем подсчитать их все.

Подсчет будет простым, но я не могу выделить уникальный список ответов ни с одной из формул, которые я использовал.

Проще говоря, я не могу разделить значения и получить уникальные значения для моих данных, что выглядит примерно так:

A1, A2, A3, A7, A8
A2, A5, A3
A3, A7, A15,
A10
A11
A7, A19
etc.

В идеале это будет выглядеть так:

A1
A2
A3
A5
A7
A8
A10
A11
A15
A19

Отсюда я мог бы сделать формулу countif с

Concatenate("*", A1, "*")

Я сделал Google лист, где попробовал множество методов: Query, Split с Array Formula, Split с TextJoin и их комбинации. Но я не могу собрать его все в одну колонку

Вот лист с моими попытками: https://docs.googlerwBDjDhDhDh редактировать ? УСП = разделение

Любая помощь будет очень признательна!

2
khabibul35 15 Авг 2019 в 19:31

2 ответа

Лучший ответ
=ARRAYFORMULA(UNIQUE(TRIM(TRANSPOSE(SPLIT(QUERY(REGEXREPLACE(
 FILTER(Data!A:A, Data!A:A<>""), "(,)( )([A-Z])", "♦$2$3")&"♦",,999^99), "♦")))))

0

______________________________________________________________

=ARRAYFORMULA(QUERY(TRIM(TRANSPOSE(SPLIT(QUERY(REGEXREPLACE(
 FILTER(Data!A:A, Data!A:A<>""), "(,)( )([A-Z])", "♦$2$3")&"♦",,999^99), "♦"))), 
 "select Col1,count(Col1) group by Col1 order by count(Col1) desc label count(Col1)''"))

0

1
player0 15 Авг 2019 в 18:09

Используйте 2 регулярных выражения.

Это первое -
< Сильный > ---------------------
Контекст: глобальный
Найти: (?:\b(A\d*)\b,?\h*(?=[\S\s]*\b\1\b))+|(A\d*),?\h*
Заменить: $2

Затем запустите этот -
< Сильный > ---------------------
Контекст: глобальный
Найти: (?:(A\d*)(?=A))
Заменить: $1\r\n

По завершении сортируйте текст в алфавитном порядке.
Тогда это будет выглядеть так (зависит от сортировки) -

A1
A2
A3
A5
A7
A8
A10
A11
A15
A19

Примечание. Если ваш механизм регулярных выражений не поддерживает предварительные утверждения, этот метод не будет работать.
Если ваш движок регулярных выражений не поддерживает горизонтальную пробелную конструкцию \h*, используйте эту
вместо этого [^\S\r\n]*

1
user557597user557597 15 Авг 2019 в 19:01