Преобразование ответов Google form, разделенных запятыми, в несколько строк в электронной таблице

#google-sheets #google-forms

#google-sheets #google-forms

Вопрос:

Я создал форму Google, в которой некоторые ответы форматируются как строки, разделенные запятыми, внутри автоматически заполняемой таблицы Google. Я хотел бы прочитать с этого листа на другой лист и переформатировать ответы так, чтобы каждый ответ, разделенный запятыми, отображался в новой строке. Я попытался применить ARRAYFORMULA функцию, которая считывается с исходного листа, а затем использовать решение, которое использует SPLIT и TRANSPOSE содержимое ячейки, однако в сочетании с ARRAYFORMULA this не удается, поскольку оно перезаписывает содержимое в других ячейках.

Вот пример электронной таблицы с ответами, таблицей решений и таблицей желаемых результатов. https://docs.google.com/spreadsheets/d/1r_l5fVJ9lGfpubO2o3pXicV7JlZWmANjwSgNi7_DL0A

Любые предложения о том, как я могу добиться конечного результата?

Комментарии:

1. Готовы ли вы рассмотреть решение Apps Script? @Kajsa

2. @ale13 Я бы предпочел этого не делать, поскольку это не будет формой долгосрочного использования, но я могу, если это необходимо.

3. Я знаю, что это можно сделать с помощью формулы некоторыми из ведущих экспертов здесь, на SO. Я только что увидел этот вопрос и посмотрю, смогу ли я что-нибудь придумать, пока вы ждете, пока они найдут это…

4. Можете ли вы сказать нам, сколько существует вопросов, поскольку это влияет на количество столбцов, на которые может действовать формула?

5. @kirkg13 Боюсь, я не знаю, сколько вопросов будет в конце.

Ответ №1:

Хорошо, я предполагаю, что это не совсем то, что вы хотите, но визуально это выглядит нормально… Попробуйте эту формулу:

 ={{'Form responses'!A2:A3},ArrayFormula(regexreplace('Form responses'!B2:E3,", ",CHAR(10)))}
  

Затем отформатируйте ячейки так, чтобы содержимое ячеек было выровнено по ВЕРХНЕМУ КРАЮ, а не по умолчанию по НИЖНЕМУ краю.

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

Если вы можете уточнить, что вы хотите сделать с результатами формы, вместо того, чтобы просто отображаться вертикально для каждого вопроса, возможно, мы сможем предоставить полное решение для этого требования?

введите описание изображения здесь

ОБНОВЛЕНИЕ1:

Хорошо, я, возможно, приближаюсь. Я могу преобразовать ваши данные, чтобы они выглядели следующим образом: введите описание изображения здесь

Это позволит вам выполнить необходимый анализ, выполнив поиск по Q.1 (ответы на вопрос 1) в первом столбце, а затем все ответы в третьем столбце вместе с владельцем в столбце 2. И, исходя из этого, также будет определенно возможно представить результаты в той форме, которую вы хотите. Это может занять промежуточный шаг.

ОБНОВЛЕНИЕ2:

Хорошо, я думаю, у меня есть кое-что, что вы можете использовать. Я могу преобразовать ваши данные в любой из следующих двух макетов.
введите описание изображения здесь

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

Макет слева больше похож на традиционный макет базы данных и очень упрощает анализ. Каждая строка содержит идентификаторы даты и электронной почты, номер вопроса и ответ (или один из ответов) на этот вопрос от этого пользователя.

Если это полезно, было бы лучше, если бы вы включили в свой образец листа, чтобы мы могли его редактировать, чтобы я мог реализовать его в вашем листе. Но вот мой образец листа, на случай, если кто-нибудь захочет его просмотреть. Обратите внимание, что основная формула для переформатирования данных в Solution!B3, может извлечь выгоду из большой очистки, и, вероятно, это далеко не лучший способ добиться этого. Просто подбрасываю одно возможное решение…

В какой-то момент я попытаюсь добавить некоторые пояснения к формуле, но спросите, есть ли у вас какие-либо вопросы.

Комментарии:

1. Спасибо за это. Причина, по которой я хотел бы, чтобы они были в отдельных ячейках, — это возможность подсчета, фильтрации, сортировки и т. Д. На основе значений в этом поле. Скажем, например, вопрос был «Перечислите имена вашего питомца». Затем я хотел бы автоматически просмотреть все разные имена домашних животных и количество людей, у которых были домашние животные с одинаковым именем. (Это последнее, что я знаю, как сделать.)

2. Это все еще можно сделать, даже без разделения содержимого ячейки. Не могли бы вы создать более реалистичную примерную таблицу с парой строк типичных ответов, а не A, B, C, J? Кроме того, если вы получите ответ, позволяющий разделить данные ячейки — что, я уверен, возможно — вам не нужны значения идентификатора — дата и адрес электронной почтыадрес — из столбца A и столбца B, который будет включен в каждую строку, а не пустым, как вы показали?

3. Привет, @Kajsa, работает ли приведенное выше решение в вашей ситуации?

4. @ale13. Да, это здорово!

5. Так рад, что это помогло. Как я уже сказал, он не оптимизирован, поэтому, если у вас возникнут какие-либо проблемы, дайте мне знать или отправьте другой вопрос.