Como faço para que o Planilhas Google trate minhas strings enviadas por formulário como texto sem formatação e preserve os zeros à esquerda?


8

Eu tenho o Google Forms onde os usuários inserem informações, algumas das quais contêm zeros à esquerda (por exemplo, códigos postais, números de identificação).

No entanto, quando esses dados são salvos na Planilha do Google, eles não são tratados como texto sem formatação e retiram o zero. Os campos do formulário são campos de texto sem validação.

Tentei formatar o intervalo de células que contém esses valores como texto sem formatação, mas parece que o Sheets não define a formatação como texto sem formatação, a menos que já exista texto em uma célula. Para que eu possa formatar uma coluna como texto sem formatação, enviar o formulário e o zero inicial ainda será removido.

Tentei escrever um script de aplicativos para lidar com isso, mas não há uma boa maneira de implantá-lo nos usuários que precisariam.

Como contornar isso sem precisar instruir os usuários a acrescentar uma única cotação à entrada de formulário? Isso é algo muito pequeno, mas não consigo encontrar uma boa solução simples para o que parece ser um problema comum. Se não conseguir que isso funcione, talvez seja necessário descartar os Formulários / Planilhas Google.


11
Bem-vindo aos aplicativos da Web ! Boa pergunta, editei-o um pouco para facilitar a leitura. Você já viu Como faço para que o Google Docs pare de formatar uma resposta de formulário como uma data?
Vidar S. Ramdal

11
Sim, e como mencionado acima, tentei o que a "resposta aceita" sugeria, mas é para uma versão mais antiga das planilhas e que não funciona mais.
res

Respostas:


3

Parte da minha resposta seria: este é um erro conhecido (os envios de formulários recém-recebidos não respeitam o formato das colunas em que estão sendo aterrados, como na versão antiga das planilhas).

Dependendo do que você está fazendo com os dados posteriormente, outra opção seria reproduzir os envios de formulários em outra planilha, com o formato correto. Por exemplo, se a coluna E continha CEPs que deveriam ter 5 dígitos e incluir zeros à esquerda (se necessário), você poderia usar:

=ArrayFormula(TEXT('Form Responses'!E:E,"00000"))

em outra folha.

Você precisaria trazer todas as suas outras colunas também. Sem ficar muito complicado, isso pode ser alcançado com facilidade na nova versão do Planilhas e formate as colunas conforme desejado, com (por exemplo):

=QUERY('Form Responses'!A:G,"select * format E '00000'",1)


2

Acabei de acertar esse problema, mas infelizmente não sei o número de dígitos que estou esperando, então não sei quantos zeros podem estar faltando. Felizmente, pensei nisso antes de enviar o formulário, se você já tiver respostas, isso não ajudará (a menos que você o envie novamente).

Para resolver este problema, tenho:

  1. Defina o tipo de pergunta para "Texto"
  2. Em "Configurações avançadas", selecionei "Expressão regular"
  3. Na próxima caixa suspensa, selecione "Correspondências"
  4. Na caixa de texto que eu inseri ^\[\d+\]$

Essa expressão regular força o usuário a inserir um colchete quadrado aberto no início da resposta, que deve ser seguido por pelo menos um dígito e terminar com um colchete quadrado fechado. Por exemplo [0021314] seria uma entrada válida. Observe que isso só permitirá dígitos; se você quiser forçar os colchetes, poderá usar ^\[.+\]$.

Na planilha, isso será exibido como [0021314]; portanto, você precisará remover os colchetes, o que pode ser feito com uma fórmula como =mid(A1,2,len(A1)-2)onde A1 é a célula que contém [0021314]. O preenchimento automático e a formatação das células como texto sem formatação devem fazer o resto do que você precisará.

Você também pode alterar a expressão regular para forçar os usuários a inserirem uma única citação no início da entrada


0

Uma maneira prolongada de dizer "eu não sei como" juntamente com "parece" pode não ser possível "(mas uma verdadeira vergonha):

O melhor (mas fraco) que posso gerenciar é esperar a entrada (e, portanto, também a saída) de um dígito por vez, usando uma escala de 0 a 9 para cada dígito.


0

As soluções propostas aqui e em outros threads funcionam apenas para números com um número fixo de dígitos. Como 5 para o código postal considerado acima.

Eu tenho que manter o zero inicial dos números de telefone belgas.
As linhas terrestres belgas têm a estrutura 025382172 (9 dígitos),
enquanto os telefones celulares têm a estrutura 0475123456 (10 dígitos)

Eu pensei que tinha encontrado uma solução alternativa duplicando os dados em uma nova guia. Para fazer isso, eu uso duas matrizes separadas para carregar em lotes grupos de colunas.

Uma primeira matriz copia todas as colunas até a coluna do número de telefone G, não incluída. =ARRAYFORMULA('Form Responses'!A2:F302)
Uma segunda matriz copia todas as colunas após a coluna de número de telefone G até a última.=ARRAYFORMULA('Form Responses'!H2:P302)

Na coluna número de telefone, tenho uma fórmula simples para acrescentar um zero antes do valor copiado: =("0"&'Form Responses'!G2)

... infelizmente, ele funciona apenas no modo estático.
No modo dinâmico, quando uma nova linha chega de um Formulário do Google, a fórmula na coluna de número de telefone G é alterada, mesmo que as matrizes não devam afetar essa coluna.

Na verdade, a fórmula =("0"&'Form Responses'!G2)muda para a próxima linha vazia, =("0"&'Form Responses'!G3)deixando a célula com um valor frustrante de 0.

Continuarei minhas investigações retornando a uma matriz única para todas as colunas em um bloco, adicionando uma coluna de número de telefone duplicado à direita fora da zona da matriz e simplesmente inserindo a seguinte fórmula: =("0"&G3)... curioso para saber se funcionará ... Se se sim, vou mascarar a coluna do número de telefone "nativo" e mostrar apenas o processado (infelizmente não no lugar certo na página).


A solução descrita ESTÁ FUNCIONANDO, desde que a coluna do número de telefone convertido NÃO seja espremida entre duas matrizes. Ele deve estar fora da área onde os dados são adicionados automaticamente. À direita ou à esquerda. HURRAY! Amicalement de Belgique. Pierre
Pierre Becquart 9/16/16

0

Esta é uma publicação mais antiga, mas eu recomendaria o seguinte ...

Na guia resultado, A1:

=QUERY('Form Responses'!A:F)

No G1:

=ArrayFormula(IF(ROW('Form Responses'!G:G)=1, 'Form Responses'!G1, IF('Form Responses'!G:G="", "", "0"&'Form Responses'!G:G)))

No H1:

=QUERY('Form Responses'!H:P)

Uma abordagem semelhante pode ser adicionada para modificar os dados das colunas que precisam de modificação.


0

Resolvi meu problema de código postal que começa com um "0" desta maneira ... Destaque a coluna, vá para a guia Formatar, clique em "número", "mais formatos" e "formatos de número personalizados". Como meus códigos postais são apenas 5 digitei "00000" e pressione "Aplicar". e funcionou!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.