У меня есть Google Forms, где пользователи вводят информацию, некоторые из которых содержат начальные нули (например, почтовые индексы, идентификационные номера).
Однако, когда эти данные сохраняются в Google Sheet, они не обрабатываются как обычный текст и обнуляются. Поля формы являются текстовыми полями без проверки.
Я попытался отформатировать диапазон ячеек, содержащих эти значения, как обычный текст, но кажется, что Sheets не устанавливает форматирование как простой текст, если в ячейке уже нет текста. Поэтому я могу отформатировать столбец как обычный текст, отправить форму, и начальный ноль все равно будет удален.
Я попытался написать сценарий приложений, чтобы справиться с этим, но у меня нет хорошего способа развернуть его для пользователей, которым это понадобится.
Как я могу обойти это без необходимости инструктировать пользователей, чтобы добавить одну цитату к своей записи формы? Это такая маленькая вещь, но я не могу найти хорошее простое решение того, что, по-видимому, должно быть обычной проблемой. Если я не могу заставить это работать, мне, возможно, придется вообще отказаться от Google Forms / Sheets.
Ответы:
Часть моего ответа будет: это известная ошибка (вновь полученные представления формы не учитывают формат столбцов, в которые они попадают, как это было в старой версии листов).
В зависимости от того, что вы делаете с данными впоследствии, другой вариант - воспроизвести отправленные формы на другом листе в правильном формате. Например, если столбец E содержит почтовые индексы, которые должны быть длиной 5 цифр и включать начальные нули (если требуется), то вы можете использовать:
=ArrayFormula(TEXT('Form Responses'!E:E,"00000"))
на другом листе.
Вы должны были бы перенести и все остальные ваши колонки. Не становясь слишком сложным, это может быть разумно легко достигнуто в новой версии Sheets, и отформатируйте столбцы по желанию, например (например):
=QUERY('Form Responses'!A:G,"select * format E '00000'",1)
источник
Я только что столкнулся с этой проблемой, но, к сожалению, я не знаю ожидаемого числа цифр, поэтому не знаю, сколько нулей может отсутствовать. К счастью, я думал об этом до того, как отправил форму, если у вас уже есть ответы, это не поможет (если вы не отправите ее снова).
Для решения этой проблемы у меня есть:
^\[\d+\]$
Это регулярное выражение заставляет пользователя вводить открытую квадратную скобку в начале своего ответа, за которой должна следовать хотя бы одна цифра, и она должна заканчиваться закрытой квадратной скобкой. Например, [0021314] будет допустимой записью. Обратите внимание, что это позволит только цифры, если вы просто хотите использовать квадратные скобки, вы можете использовать
^\[.+\]$
вместо этого.На листе это будет показано как [0021314], поэтому вам нужно будет убрать квадратные скобки, что можно сделать с помощью формулы, например,
=mid(A1,2,len(A1)-2)
где A1 - это ячейка, содержащая [0021314]. Автоматическое заполнение и форматирование ячеек в виде простого текста должны сделать все остальное, что вам нужно.Вы также можете изменить регулярное выражение, чтобы заставить пользователей вводить одинарные кавычки в начале их ввода.
источник
Долгосрочный способ сказать «я не знаю, как» в сочетании с «кажется, может быть невозможен» (но это настоящий позор):
Лучшее (но слабое), которым я могу управлять, - это ожидать ввода (и, следовательно, вывода) одной цифры за раз, используя шкалу от 0 до 9 для каждой цифры.
источник
Предлагаемые здесь и другие решения решений работают только для чисел с фиксированным числом цифр. Как 5 для почтового индекса, рассмотренного выше.
Я должен держать ведущий ноль бельгийских телефонных номеров.
Бельгийские наземные линии имеют структуру 025382172 (9 цифр), в
то время как мобильные телефоны имеют структуру 0475123456 (10 цифр)
Я думал, что нашел обходной путь, дублирующий данные в новой вкладке. Для этого я использую два отдельных массива для пакетной загрузки групп столбцов.
Первый массив копирует все столбцы до столбца G телефонного номера, не включенного.
=ARRAYFORMULA('Form Responses'!A2:F302)
Второй массив копирует все столбцы после столбца номера телефона G до последнего.
=ARRAYFORMULA('Form Responses'!H2:P302)
В столбце номера телефона у меня есть простая формула, чтобы добавить ноль перед скопированным значением:
=("0"&'Form Responses'!G2)
... к сожалению, он работает только в статическом режиме.
В динамическом режиме, когда из Google Form появляется новая строка, формула в столбце номера телефона G испорчена, даже если массивы не должны влиять на этот столбец.
Фактически формула
=("0"&'Form Responses'!G2)
переходит к следующей пустой строке,=("0"&'Form Responses'!G3)
оставляя ячейку с разочаровывающим значением 0.Я продолжу свои исследования, вернувшись к одному массиву для всех столбцов в одном блоке, добавив столбец с повторяющимся номером телефона справа за пределами зоны массива и просто введя следующую формулу:
=("0"&G3)
... интересно, будет ли это работать ... Если это так, я замаскирую столбец «родного» номера телефона и покажу только обработанный (к сожалению, не в нужном месте на странице).источник
Это старый пост, но я бы порекомендовал следующее ...
На вкладке результатов A1:
=QUERY('Form Responses'!A:F)
В G1:
=ArrayFormula(IF(ROW('Form Responses'!G:G)=1, 'Form Responses'!G1, IF('Form Responses'!G:G="", "", "0"&'Form Responses'!G:G)))
В H1:
=QUERY('Form Responses'!H:P)
Аналогичный подход может быть добавлен для модификации данных столбцов, которые требуют модификации.
источник
Я решил проблему с почтовым индексом, которая начинается с «0» следующим образом ... Выделите столбец, перейдите на вкладку «Формат», нажмите «Число», «Другие форматы», а затем «Пользовательские форматы чисел», поскольку у меня только 5 почтовых индексов. цифры я набрал в "00000" и нажал применить. и это сработало!
источник