Wie analysiere ich eine Ganzzahl in Google Sheets?

16

Was ist das Äquivalent von parseInt()(JS) oder intval()(PHP) in Google Sheets?

Ich möchte die Summe der Zahlen in einer Reihe in einer separaten Zelle berechnen. Wenn ich also 3 cupsund 5 cupsin einer Reihe hätte, würde ich bekommen 18.

FT
quelle
4
Meinen Sie "3 Tassen" und "15 Tassen", oder vermisse ich etwas?
jonsca

Antworten:

15

Eine Möglichkeit, so etwas zu implementieren, ist

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

Das Ergebnis dieser Formel für einige Beispielzeichenfolgen ist unten angegeben.

Bildbeschreibung hier eingeben

Möglicherweise müssen Sie dies an Ihre individuellen Bedürfnisse anpassen. Es sollte für Saiten, die so einfach wie "3 Tassen" sind, ziemlich gut funktionieren.

  • SPLIT(..., " ")Teilt eine Zeichenfolge in durch Leerzeichen getrennte Teile. Sie können der Zeichenfolge weitere Zeichen hinzufügen, z. B. um sie " -/"zu teilen, wenn diese Zeichen gefunden werden.

  • ISNUMBER prüft, ob eine Zeichenkette eine Zahl ist.

  • FILTER Nimmt das Array und filtert alles heraus, was die zweite Funktion nicht erfüllt, dh alles, was keine Zahl ist.

  • INDEX(...; 1; 1) Gibt den Wert in der ersten Zeile und in der ersten Spalte des Arrays zurück (daher wird nur die erste Zahl aufgeführt, nicht alle aufgeführten Zahlen).

  • VALUE wird wahrscheinlich nicht benötigt, aber es konvertiert die endgültige Zeichenfolge nur zum guten Zweck in einen numerischen Wert.

6005
quelle
2
Die Antwort lautet also VALUE...
Iulian Onofrei
@IulianOnofrei Nein, VALUEwirft einen Fehler ("kann nicht in eine Zahl zerlegt werden") für alle Beispieleingaben auf, die ich in der Antwort angegeben habe.
6005
1
Entschuldigung, ich wollte sagen, das VALUEist die Antwort auf die erste Frage von OP und auch der Titel.
Iulian Onofrei
@IulianOnofrei Ich kenne kein JavaScript, aber so habe ich die Frage des OP nicht verstanden.
6005
3

Eine andere Alternative, die mit Zellen funktioniert, die Becher oder Becher enthalten

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

Scheint eine gute Verwendung für Regex. Beispielsweise:

WA57716 Beispiel

wo die Formel in E2 ist:

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

Dadurch werden alle nicht +numerischen Zeichen entfernt , das Ergebnis mit verknüpft und vorangestellt =.

Kopieren / Einfügen / Einfügen von Werten in beispielsweise F2 (könnte E2 sein) und dann Ersetzen =durch =.

JOIN
REGEXREPLACE

pnuts
quelle