¿Cómo analizo un entero en un Google Sheets?

16

¿Cuál es el equivalente de parseInt()(JS) o intval()(PHP) en las Hojas de cálculo de Google?

Quiero calcular la suma de los números en una fila en una celda separada. Entonces, si tuviera 3 cupsy 5 cupsen una fila, lo conseguiría 18.

PIE
fuente
44
¿Te refieres a "3 tazas" y "15 tazas", o me estoy perdiendo algo?
jonsca

Respuestas:

15

Una forma de implementar algo como esto es

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

El resultado de esta fórmula para algunas cadenas de ejemplo se da a continuación.

ingrese la descripción de la imagen aquí

Puede que tenga que modificar esto para satisfacer sus necesidades individuales. Debería funcionar bastante bien para cadenas tan simples como "3 tazas".

  • SPLIT(..., " ")divide una cadena en sus partes separadas por espacios. Puede agregar más caracteres a la cadena, por ejemplo " -/", para dividir cada vez que se encuentren esos caracteres.

  • ISNUMBER comprueba si una cadena es un número.

  • FILTER toma la matriz y filtra todo lo que no satisface la segunda función, es decir, elimina todo lo que no es un número.

  • INDEX(...; 1; 1) devuelve el valor en la primera fila, primera columna de la matriz (por lo que solo obtenemos el primer número de la lista, no todos los números de la lista).

  • VALUE probablemente no será necesario, pero solo por una buena medida convierte la cadena final en un valor numérico.

6005
fuente
2
Entonces la respuesta es VALUE...
Iulian Onofrei
@IulianOnofrei No, VALUEgenera un error ("no se puede analizar en un número") en todas las entradas de ejemplo que di en la respuesta.
6005
1
Lo siento, quería decir que esa VALUEes la respuesta a la primera pregunta de OP y también el título.
Iulian Onofrei
@IulianOnofrei No conozco JavaScript, pero no es así como entendí la pregunta del OP.
6005
3

Otra alternativa que funciona con celdas que contienen copa o copas

= ArrayFormula (SUM (INT (IZQUIERDA (B1: B2, FIND ("", B1: B2)))))
Rubén
fuente
1

Parece un buen uso para la expresión regular. Por ejemplo:

Ejemplo WA57716

donde la fórmula en E2 es:

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

Esto elimina todos los no numéricos, concatena el resultado con +y antepone =.

Copiar / Pegar / Pegar valores solo en, digamos, F2 (podría ser E2) y luego Reemplazar =con =.

ÚNETE A
REGEXREPLACE

nueces
fuente