Come posso analizzare un numero intero in Fogli Google?


16

Qual è l'equivalente di parseInt()(JS) o intval()(PHP) in Fogli Google?

Voglio calcolare la somma dei numeri in una riga in una cella separata. Quindi se avessi 3 cupse 5 cupsdi fila, otterrei 18.


4
Vuoi dire "3 tazze" e "15 tazze", o mi sto perdendo qualcosa?
jonsca

Risposte:


15

Un modo per implementare qualcosa del genere è

=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))

Il risultato di questa formula per alcune stringhe di esempio è riportato di seguito.

inserisci qui la descrizione dell'immagine

Potrebbe essere necessario modificarlo in base alle proprie esigenze individuali. Dovrebbe funzionare abbastanza bene per archi semplici come "3 tazze".

  • SPLIT(..., " ")divide una stringa nelle sue parti separate da spazio. È possibile aggiungere più caratteri alla stringa, ad esempio " -/", per dividere ogni volta che vengono trovati quei caratteri.

  • ISNUMBER controlla se una stringa è un numero.

  • FILTER prende l'array e filtra tutto ciò che non soddisfa la seconda funzione, ovvero elimina tutto ciò che non è un numero.

  • INDEX(...; 1; 1) restituisce il valore nella prima riga, prima colonna dell'array (in modo da ottenere solo il primo numero elencato, non tutti i numeri elencati).

  • VALUE probabilmente non sarà necessario, ma solo per buona misura converte la stringa finale in un valore numerico.


2
Quindi la risposta è VALUE...
Iulian Onofrei

@IulianOnofrei No, VALUEgenera un errore ("impossibile analizzarlo in un numero") su tutti gli input di esempio che ho fornito nella risposta.
6005

1
Scusate, volevo dire che VALUEè la risposta alla prima domanda di OP e anche al titolo.
Iulian Onofrei

@IulianOnofrei Non conosco JavaScript ma non è così che ho capito la domanda del PO.
6005

3

Un'altra alternativa che funziona con celle contenenti tazze o tazze

= ArrayFormula (SUM (INT (SINISTRA (B1: B2, FIND ("", B1: B2)))))


1

Sembra un buon uso per regex. Per esempio:

Esempio WA57716

dove la formula in E2 è:

="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))

Questo elimina tutti i numeri non numerici, concatena il risultato +e li antepone =.

Copia / Incolla / Incolla solo i valori in, diciamo, F2 (potrebbe essere E2) quindi Sostituisci =con =.

UNISCITI A
REGEXREPLACE

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.