#google-sheets #google-forms
Вопрос:
в моем случае использования у меня есть опрос Google, подключенный к основному листу Google.
В опросе есть 2 вопроса: 1. Имя, 2. Множественный выбор от 1-31 (дней в месяце). Результаты моего опроса попадают в автоматически сгенерированную таблицу Google survey/Forms в Google Таблицах с 2 столбцами: «Имя» и » В какие дни?». Столбец » В какие дни?» содержит ячейки со связанным списком строк (например ‘1, 3, 6, 8, 11’).
Основная страница Google имеет следующую структуру: первый столбец — «Имя», который просто импортирует имя с листа формы шрифта (это отлично работает). Остальные столбцы представляют дни месяца (таким образом, до 31 столбца с 1-31). Под каждой колонкой есть флажки.
Идея состоит в том, что флажки будут автоматически проверяться в соответствии с результатами формы шрифта (вместо флажков мы также могли бы использовать цветные ячейки, если это проще).
Проблема: Как я могу автоматически получить данные из связанной ячейки «В какие дни?» (например,’1, 3, 6, 8, 11′) на главный лист Google (чтобы столбцы ‘1’, ‘3’, …, ’11’ помечены/окрашены)?
Спасибо!
Ответ №1:
Вы можете использовать эту формулу в ячейке B2 вашего основного листа (предположим, лист 1-это ваш опросный лист, а лист 2-ваш основной лист).:
=IF(iferror(match(CELL("address",B2),ARRAYFORMULA(ADDRESS(ROW(B2),1 split(Sheet1!$B2,","))),0),0),TRUE,FALSE)
Затем перетащите вправо и вниз до конца таблицы.
Образец:
Объяснение:
SPLIT
создает массив чисел на основе ваших входных данных, разделенных запятыми.
ADDRESS
создает строку ссылок на ячейки. ARRAYFORMULA
расширяет это до массива.
MATCH
возвращает допустимое значение, если CELL
ссылка на позицию ячейки существует в другой таблице, иначе она вернет ошибку.
IF
и IFERROR
вернет значение true или false в зависимости от значения MATCH.
Комментарии:
1. Привет, спасибо за ваш ответ. Я могу понять формулу, но я все еще не использовал ее. Произошла ошибка. Я также попытался идентично воспроизвести ваш пример, но он все равно показал те же ошибки: 1. Ошибка формулярного анализа и 2. Неверно: содержимое этой ячейки нарушает правило проверки. Может быть, я допустил ошибку в настройке проверки данных? Это может объяснить ошибку 2…
2. Попробуйте отформатировать ячейки в виде флажков. Вставить -> Флажок
3. mh. тоже не работает. Вы вставили формулу в B2, а затем установили флажок? После удаления проверки данных ошибка анализа (#ОШИБКА!) все еще сохраняется..
4. Порядок не имеет значения, когда ячейки не находятся в флажках, они должны отображаться как таблица true или false. Может быть, вы находитесь в стране, которая использует точки с запятой в качестве разделителей формул. Попробуйте заменить запятые точками с запятой.
5. Мило! Теперь это работает. Просто возникла небольшая проблема: на моем листе 2 есть 2 дополнительных столбца с левой стороны. И, по-видимому, флажки сдвинуты на 2 позиции влево. Следовательно, в столбце 1 флажок фактически отображает значение для столбца 3.
Ответ №2:
использовать:
=ARRAYFORMULA(REGEXMATCH(COLUMN(B:K)-1amp;"",
"^"amp;SUBSTITUTE(SUBSTITUTE(IFNA(VLOOKUP(A10:A12, A1:B3, 2, 0)), " ", ), ",", "$|^")amp;"$"))
Комментарии:
1. Спасибо вам за ваш ответ. Как бы вы изменили формулу, если бы обе таблицы были на отдельных листах?
2. @2stefan2000 вы просто меняете диапазоны в соответствии с вашими именами листов и диапазонами листов
3. @2stefan2000 docs.google.com/spreadsheets/d/…
4. спасибо вам за ссылку! Я уже реализовал другое предлагаемое решение, но все равно ценю его.