Come faccio a far sì che Fogli Google tratti le mie stringhe inviate dal modulo come testo semplice e conservi gli zeri iniziali?


8

Ho moduli Google in cui gli utenti inseriscono informazioni, alcune delle quali contengono zeri iniziali (ad esempio codici postali, numeri ID).

Tuttavia, quando questi dati vengono salvati nel foglio di Google, non li trattano come testo semplice e rimuovono lo zero. I campi del modulo sono campi di testo senza convalida.

Ho provato a formattare l'intervallo di celle che contengono questi valori come testo normale, ma sembra che Fogli non imposti la formattazione come testo normale a meno che non ci sia già testo in una cella. Quindi posso formattare una colonna come testo semplice, inviare il modulo e lo zero iniziale verrà comunque rimosso.

Ho provato a scrivere uno script di app per far fronte a questo, ma non c'è un buon modo per distribuirlo agli utenti che ne avrebbero bisogno.

Come posso aggirare questo senza dover istruire gli utenti a anteporre un singolo preventivo alla loro voce del modulo? Questa è una cosa così piccola, ma non riesco a trovare una buona soluzione semplice a quello che sembra essere un problema comune. Se non riesco a farlo funzionare, potrei dover eliminare del tutto i moduli / fogli di Google.


1
Benvenuto in Applicazioni Web ! Bella domanda, l'ho leggermente modificata per facilitarne la lettura. Hai visto Come posso fare in modo che Google Docs smetta di formattare una risposta del modulo come data?
Vidar S. Ramdal,

1
Sì, e come notato sopra, ho provato ciò che la "risposta accettata" suggeriva, ma è per una versione precedente di fogli e che non funziona più.
res

Risposte:


3

Parte della mia risposta sarebbe: si tratta di un bug noto (i moduli inviati di recente non rispettano il formato delle colonne in cui stanno atterrando, come nella vecchia versione dei fogli).

A seconda di ciò che stai facendo con i dati in seguito, un'altra opzione sarebbe quella di riprodurre gli invii dei moduli su un altro foglio, con il formato corretto. Ad esempio, se la colonna E conteneva codici postali che dovrebbero essere lunghi 5 cifre e includere zeri iniziali (se richiesto), è possibile utilizzare:

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

su un altro foglio.

Tuttavia, dovresti portare anche tutte le altre colonne. Senza essere troppo complicato, questo può essere ragionevolmente facilmente raggiunto nella nuova versione di Fogli e formattare le colonne come desiderato, con (ad esempio):

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


2

Ho appena riscontrato questo problema, ma sfortunatamente non conosco il numero di cifre che mi aspetto, quindi non so quanti zeri potrebbero mancare. Fortunatamente, ci ho pensato prima di inviare il modulo, se hai già delle risposte, questo non sarà di aiuto (a meno che non lo invii di nuovo).

Per risolvere questo problema ho:

  1. Imposta il tipo di domanda su "Testo"
  2. In "Impostazioni avanzate" ho selezionato "Espressione regolare"
  3. Nella casella a discesa successiva ho selezionato "Corrispondenze"
  4. Nella casella di testo ho inserito ^\[\d+\]$

Questa espressione regolare impone all'utente di inserire una parentesi quadra aperta all'inizio della risposta, che deve essere seguita da almeno una cifra e deve terminare con una parentesi quadra chiusa. Ad esempio [0021314] sarebbe una voce valida. Si noti che ciò consentirà solo cifre, se si desidera solo forzare le parentesi quadre, è possibile utilizzare ^\[.+\]$invece.

Nel foglio, questo mostrerà come [0021314], quindi dovrai rimuovere le parentesi quadre che possono essere fatte con una formula come =mid(A1,2,len(A1)-2)dove A1 è la cella contenente [0021314]. Il riempimento automatico e la formattazione delle celle come testo normale dovrebbero fare il resto di ciò che ti servirà.

È inoltre possibile modificare l'espressione regolare per forzare gli utenti a inserire una singola citazione all'inizio della voce


0

Un modo lungo e tortuoso di dire "Non so come" accoppiato con "sembra non essere possibile" (ma un vero peccato):

Il migliore (ma debole) che posso gestire è aspettarmi input (e quindi anche output) una cifra alla volta usando una scala da 0 a 9 per ogni cifra.


0

Le soluzioni proposte qui e su altri thread funzionano solo per numeri con un numero fisso di cifre. Come 5 per il codice postale considerato sopra.

Devo mantenere lo zero iniziale dei numeri di telefono belgi.
Le linee di terra belghe hanno la struttura 025382172 (9 cifre)
Mentre i telefoni cellulari hanno la struttura 0475123456 (10 cifre)

Pensavo di aver trovato una soluzione alternativa duplicando i dati in una nuova scheda. Per fare ciò, uso due matrici separate per caricare in gruppo gruppi di colonne.

Un primo array copia tutte le colonne fino alla colonna G del numero di telefono, non inclusa. =ARRAYFORMULA('Form Responses'!A2:F302)
Un secondo array copia tutte le colonne dopo la colonna G del numero di telefono fino all'ultima.=ARRAYFORMULA('Form Responses'!H2:P302)

Nella colonna del numero di telefono ho una semplice formula per aggiungere uno zero prima del valore copiato: =("0"&'Form Responses'!G2)

... sfortunatamente, funziona solo in modalità statica.
In modalità dinamica, quando arriva una nuova riga da un modulo Google, la formula nella colonna numero di telefono G è incasinata, anche se gli array non dovrebbero influenzare questa colonna.

In realtà la formula =("0"&'Form Responses'!G2)passa alla riga successiva che è vuota =("0"&'Form Responses'!G3)lasciando la cella con un valore frustrante di 0.

Perseguirò le mie indagini tornando a un singolo array per tutte le colonne in un blocco, aggiungendo una colonna duplicata del numero di telefono sulla destra fuori dalla zona dell'array e inserendo semplicemente la seguente formula: =("0"&G3)... curioso se funzionerà ... Se sì, maschererò la colonna del numero di telefono "nativo" e mostrerò solo quella elaborata (purtroppo non nel posto giusto nella pagina).


La soluzione descritta FUNZIONA, a condizione che la colonna del numero di telefono convertita NON sia compressa tra due matrici. Deve essere al di fuori dell'area in cui i dati vengono aggiunti automaticamente. O a destra oa sinistra. Evviva! Amicalement de Belgique. Pierre
Pierre Becquart,

0

Questo è un post più vecchio, ma consiglierei quanto segue ...

Nella scheda dei risultati, A1:

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

In G1:

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

In H1:

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

È possibile aggiungere un approccio simile per modificare i dati delle colonne da modificare.


0

Ho risolto il mio problema con il codice postale che inizia con uno "0" in questo modo ... Evidenzia colonna, vai alla scheda formato, fai clic su "numero", "più formati" e poi "formati numeri personalizzati" Dato che i miei codici postali sono solo 5 cifre ho digitato "00000" e premere applica. e ha funzionato!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.