Ana içeriğe atla

Hem Sayı Hem de Metin İçeren Hücrelerde Toplama

Google E-Tablolar, sayı ve metinlerin karışık biçimde yer aldığı hücreleri metin olarak ele alıyor. Bu yüzden normal yollarla bu tür hücrelerde toplama işlemi yapılamıyor.

Böyle bir durumla aylık temettü gelirimi takip etmek için oluşturduğum hesap tablosunda karşılaştım. Bir hücrede sadece o ay aldığım toplam temettüyü değil, hangi şirketten ne kadar temettü aldığımı ayrı ayrı görmek istiyordum, şöyle yani:

  • ANACM 33,76
  • ALKA 198,07

Kısa bir araştırmayla Sum Cells With Numbers and Text in a Column in Google Sheets başlıklı yazıya ulaştım.

Yazıda anlatıldığı gibi Sum, IFERROR, ArrayFormula, SPLIT ve REGEXREPLACE fonksiyonlarını kullanarak istediğim sonucu elde ettim:

=ArrayFormula(SUM(IFERROR(SPLIT(REGEXREPLACE(B2:B13&""; "[^\d\,]+"; "|"); "|"))))


Formülü inceleyerek neler oluduğunu daha iyi bir şekilde anlamaya çalışalım. Elde etmeye çalıştığımız sonuç için verileri bir dizi olarak ele alıyoruz. Bunun için ArrayFormula'yı kullanıyoruz.

Regexreplace, işlem yaptığımız aralıktaki bütün metinleri | sembolüyle değiştiriyor.

Aralık belirtiminin sonundaki &"" kısmı, sadece sayılardan oluşan hücrelerde hata alınmasını önlemek için. Bu şekilde kullanılmasaydı Regex, sadece sayı olan hücrelerde metin de bekleyeceği için DEĞER! hatası döndürecekti.

SPLIT fonksiyonu, | sembolünü ayraç kabül ederek ayırma işlemi yapıyor.

| sembolü, bizim yapmaya çalıştığımız iş için epey önemli. Eğer bu sembolü kullanmak yerine hiçbir şey kullanmasaydık, yani "" kullansaydık, bir hücre içindeki birden çok sayı değeri tek bir sayı olarak birleştirilecekti.

Iferror ise sütundaki boş hücrelerle ilişkili diğer hataları kaldırmak için kullanılıyor.

Son olarak da SUM fonksiyonu, tüm değerleri topluyor. Eğer SUM fonksiyonunu formüldeki yerinden kaldırırsanız sadece ayıklanan sayıları elde edebilirsiniz. Deneme yapmanız gerekirse işinize yarayabilir bu da.

Borsa yatırımlarım belki beni zengin etmeyecek ama kesinlikle daha iyi bir tablolama programı kullanıcısı yapacak :)

Yorumlar

  1. Merhabalar,
    Tam da nasıl bir tablo kullandığınızı soracaktım. Excel mi, başka bir prog mı? Az ve öz bir format mı yoksa detaylı mı?

    YanıtlaSil
    Yanıtlar
    1. Merhaba, kişisel kullanımım için normalde LibreOffice ( https://tr.libreoffice.org/ ) kullanıyorum. Portföyüm içinse Google Finans'tan ve diğer çevrimiçi kaynaklardan canlı veya canlıya yakın veriler çekmenin çok kolay olması nedeniyle Google E-Tablolar kullanıyorum.

      Kullandığım tabloya şu adresten ulaşabilirsiniz:

      https://docs.google.com/spreadsheets/d/1BV4Hwd2SnZQTcvzqmmm4jdg_DtYd2nRnAkWIWbBflp8

      Belgede erişim isteğinde bulunmadan kopyasını oluşturarak istediğiniz gibi değiştirip kullanabilirsiniz isterseniz.

      Sorunuzun son kısmı, kullandığım tablolama programı için mi yoksa oluşturduğum tablo için mi tam anlayamadım. Oluşturduğum tablo çoğuna gereksizce detaylı gibi gelebilir ama benim için en önemli şeylerin elimin altında olması güzel geliyor. Hatta bir ara PD/DD gibi bir sütun daha eklemeyi düşünüyorum.

      Son olarak yukarıdaki ekran görüntüsü ve formül Google E-Tablolar için.

      Sil
  2. Merhaba Belgeyi kopyaladığımızda içerideki formüleri kaybediyoruz.Daha doğrusu bize değiştirme şansı vermiyor.Bunu nasıl yapabiliriz.Bu arada çok iyi ve benim için yeterli bir tablo olmuş.Kendimde formül oluşturabilirim ancak zaman kaybetmeden yapabilirsem harika olacak.

    YanıtlaSil
    Yanıtlar
    1. Merhaba, teşekkürler. Şu an tekrar denedim ve bahsettiğiniz durumu tekrarlayamadım. Dosyayı: Dosya > Kopyasını oluştur yolunu takip ederek kopyaladığınızda tüm formüllerle ve örnek olması için bıraktığım verilerle dosya kopyası oluşur. Tekrar deneyip sorun yaşarsanız mümkünse sorunu gösteren bir ekran görüntüsü de paylaşarak söyleyin lütfen bakayım.

      Sil
  3. çözdüm ve kendime kopyalayıp geliştireceğim.f/k ve diğer verileride eklemek istiyorum.Ama başlangıçta sizden feyz almak faydalı oldu.teşekkürler

    YanıtlaSil

Yorum Gönder