Google E-Tablolar'daki parseInt()
(JS) veya intval()
(PHP) eşdeğeri nedir ?
Ayrı bir hücredeki bir satırdaki sayıların toplamını hesaplamak istiyorum. Eğer olsaydı 3 cups
ve 5 cups
arka arkaya olsaydım, alırdım 18
.
Google E-Tablolar'daki parseInt()
(JS) veya intval()
(PHP) eşdeğeri nedir ?
Ayrı bir hücredeki bir satırdaki sayıların toplamını hesaplamak istiyorum. Eğer olsaydı 3 cups
ve 5 cups
arka arkaya olsaydım, alırdım 18
.
Yanıtlar:
Böyle bir şeyi uygulamanın bir yolu
=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))
Bazı örnek dizeler için bu formülün sonucu aşağıda verilmiştir.
Bireysel ihtiyaçlarınıza göre bunu değiştirmeniz gerekebilir. "3 bardak" kadar basit dizeler için oldukça iyi çalışmalıdır.
SPLIT(..., " ")
bir dizeyi boşlukla ayrılmış parçalarına böler. Dizeye daha fazla karakter ekleyebilirsiniz, örneğin " -/"
, bu karakterler bulunduğunda bölmek için.
ISNUMBER
bir dizenin sayı olup olmadığını kontrol eder.
FILTER
diziyi alır ve ikinci işlevi karşılamayan her şeyi filtreler, yani sayı olmayan her şeyi çıkarır.
INDEX(...; 1; 1)
dizinin ilk sütunundaki ilk satırdaki değeri döndürür (böylece listelenen tüm sayıları değil, yalnızca listelenen ilk sayıyı alırız).
VALUE
muhtemelen gerekli olmayacaktır, ancak sadece iyi bir ölçüm için son dizeyi sayısal bir değere dönüştürür.
VALUE
...
VALUE
tüm örnek girişlerde bir hata ("bir sayıya ayrıştırılamıyor") ortaya çıkıyor.
VALUE
OP'nin ilk sorusunun yanıtı ve başlığı da öyle demek istedim .
Bir parseInt()
alternatif:
=INT()
=SUM(ARRAYFORMULA(INT(LEFT(B1:B2, LEN(B1:B2)-5))))
LEN(B1:B2)-5
Bir boşluk içerir.
Normal ifade için iyi bir kullanım gibi görünüyor. Örneğin:
burada E2'deki formül:
="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))
Bu, tüm sayısal olmayanları çıkarır, sonucu birleştirir +
ve ekler =
.
Kopya / sonra değiştirin söz hakkından, içine, F2 (E2 olabilir) sadece bu değerleri Yapıştır / yapıştır =
ile =
.