• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sütunda ardışık gelen negatif sayıların toplamının en küçüğü

  • Konbuyu başlatan Konbuyu başlatan miha
  • Başlangıç tarihi Başlangıç tarihi
Katılım
31 Ocak 2019
Mesajlar
83
Excel Vers. ve Dili
2016 Excel. English.
"C" sütunun her satırında negatif ve pozitif olmak üzere farklı sonuçlar yer almaktadır. Bazı "C" Satırları ise boştur. Ben istiyorum ki "D2" hücresine yazacağım
bir formülle "C" sütununda birbiri ardına gelen negatif sayıları toplasın ve bu toplamların en küçüğünün sonucunu bana versin.
Örneğin.
1.Satır = 5
2.Satır = -3
3.Satır = 2
4.Satır = 7
5.Satır = -2
6.Satır = -3
7.Satır = -4
8.Satır = 6

Bu örneğe göre: ilk negatif sayı "2. satırda". Kendisinden sonra pozitif ya da "0" değerine sahip bir sayı geldiğinden bu bizim ilk sonucumuz yani "-3" oluyor.
Daha sonra 5.Satırda "-2" ile başlıyor ve devamındaki satırlarda 7.Satıra kadar negatif olduğundan "5.,6. ve 7." satıların toplamı da ikinci sonuç olarak "-9" eder. (Buradaki ardaşıklık kastım şu ki kendisinden sonra gelen ilk negatif sayıyı barındıran satırdan bahsediyoruz)
Şimdi bu "C" sütunda ardışık olarak gelen negatif sayıların toplamı karşılaştırıldığında elimizde bir "-3" ve "-9" sayıları var.
Buna göre "C" sütununda ardışık gelen negatif sayıların toplamının en küçüğü "-9" olduğundan bana "D2" hücresinde bu sonucu verecek ve -9 yazacak.
Nasıl bir formülle halledilebilir. Bulamadım. Yardımcı olabilecek arkadaşlara da şimdiden çok teşekkür ederim
 
Merhaba,
D sütununu yardımcı sütun olarak kullanıp D2 hücresine =EĞER(VE(C2<0;C1<0);C2+D1;C2) formülünü yazıp aşağı çekerek çoğaltınız.
Daha sonra herhangi bir hücreye =MİN(D:D) formülünü yazarak istediğiniz sonucu alabilirsiniz.
Makro ile yapmak isteseniz:
Kod:
Sub kod()
For a = 1 To Cells(Rows.Count, "C").End(3).Row
    If Cells(a, "C") < 0 Then
        t = t + Cells(a, "C")
    Else
        If t < te Then te = t
        t = 0
    End If
Next
MsgBox te
End Sub
 
Son düzenleme:
Merhaba,
D sütununu yardımcı sütun olarak kullanıp D2 hücresine =EĞER(VE(C2<0;C1<0);C2+D1;C2) formülünü yazıp aşağı çekerek çoğaltınız.
Daha sonra herhangi bir hücreye =MİN(D:D) formülünü yazarak istediğiniz sonucu alabilirsiniz.
Makro ile yapmak isteseniz:
Kod:
Sub kod()
For a = 1 To Cells(Rows.Count, "C").End(3).Row
    If Cells(a, "C") < 0 Then
        t = t + Cells(a, "C")
    Else
        If t < te Then te = t
        t = 0
    End If
Next
MsgBox te
End Sub
@ÖmerBey çok teşekkür ederim. Yeni gördüm mesajınızı ve hemen denedim. Formül olanı denedim ve istediğim sonucu verdi. Makroyu da deneyip geri bildirimde bulunacağım. Çok sağolun yardımınız için.
 
Merhaba,
D sütununu yardımcı sütun olarak kullanıp D2 hücresine =EĞER(VE(C2<0;C1<0);C2+D1;C2) formülünü yazıp aşağı çekerek çoğaltınız.
Daha sonra herhangi bir hücreye =MİN(D:D) formülünü yazarak istediğiniz sonucu alabilirsiniz.
Makro ile yapmak isteseniz:
Kod:
Sub kod()
For a = 1 To Cells(Rows.Count, "C").End(3).Row
    If Cells(a, "C") < 0 Then
        t = t + Cells(a, "C")
    Else
        If t < te Then te = t
        t = 0
    End If
Next
MsgBox te
End Sub
@ÖmerBey tekrar Merhaba,
Formülünüz satırların hepsi dolu iken başarılı ancak ilk mesajımda da belirttiğim üzere bazı satırlar boş olduğundan(içlerinde formül var ama sonuç olarak "" boş döndürüyor böyle olunca da formül istediğim sonucu vermiyor. Bütün satırlar dolu iken gayet başarılı. Bazı aradaki satırlar boş olsa da kendisinden sonra gelen satırlardaki negatif sayıları yine aynı şekilde hesaplayacak. Bunu nasıl çözebiliriz?
 
Deneyiniz...
Kod:
=EĞER(VE(YADA(C2<0;C2="");YADA(C1<0;C1=""));C2+D1;C2)
 
Deneyiniz...
Kod:
=EĞER(VE(YADA(C2<0;C2="");YADA(C1<0;C1=""));C2+D1;C2)
@ÖmerBey son formülü uyguladım. Ancak "C" hücreleri içersinde formül bulunduğundan ve bu formüller "" (boş) sonucunu verdiğinden dolayı formülünüz C sütunundaki boş hücreleri referans aldığında "Value" Hatası veriyor. Evulate Formula da adım adım uyguladığımda C2+D1 hesaplamasını yaparken formülü ""+(-50) olarak gördüğünden Value hatasını alıyorum. Tekrar teşekkürler.
 
Bu nedenle ilgili formülünüzde C2="" yerine C2=0 olarak C1="" yerine C1=0 olarak revize ettiğimde sorun çözülüyor.
Sorun çözülüyorsa alternatife gerek var mı?
İlk mesajınızda
Kendisinden sonra pozitif ya da "0" değerine sahip bir sayı geldiğinde
şeklinde bir şart ortaya koyduğunuz için sıfır değerini hesaba katmaması için formülü o şekilde düzenlemiştim. Yoksa ilk formüldeki < işaretini <= yaparak da aynı sonucu alabilirsiniz.
Sorununuzun devamı halinde farklı sonuçları içerebilecek örnek dosya paylaşırsanız onun üzerinden daha somut çözümler sunulabilir.
İyi çalışmalar...
 
Sorun çözülüyorsa alternatife gerek var mı?
İlk mesajınızda

şeklinde bir şart ortaya koyduğunuz için sıfır değerini hesaba katmaması için formülü o şekilde düzenlemiştim. Yoksa ilk formüldeki < işaretini <= yaparak da aynı sonucu alabilirsiniz.
Sorununuzun devamı halinde farklı sonuçları içerebilecek örnek dosya paylaşırsanız onun üzerinden daha somut çözümler sunulabilir.
İyi çalışmalar...
@ÖmerBey C2=0 C2=1 yapınca sorunun çözüldüğünü belirtmiştim ki çözülmediğini görünce hemen o satırları silerek mesajımı revize etmiştim. Çünkü bu şekilde çözülmesi için C sütunundaki formüllere de müdahale edip ="" yerine =0 şeklinde yenilemek gerekiyor. Aslında sizin yaklaşımınız sorunu çözüyor sadece C sütunundaki bazı hücreler boş ama içlerinde formül var. Ben C sütunundaki şartlı formüllerle eğer sonuç şu ise ="" şeklinde belirttiğimden o şekilde boş gözüküyor. Sizin formülünüzü uyguladığımda ise o formüllü boş hücreleri "" tırnak işareti olarak görüdüğünden sizin formülünüzdeki C2+D1 OLAN formülü Evaluate Formula bölümünde hesaplattığımda C2 hücresini "" (tırnak) olarak görüyor ve Örneğin ; ""+(-50) şeklinde hesaplama sonucu "Value" değerini veriyor.
 
Sorun çözülüyorsa alternatife gerek var mı?
İlk mesajınızda

şeklinde bir şart ortaya koyduğunuz için sıfır değerini hesaba katmaması için formülü o şekilde düzenlemiştim. Yoksa ilk formüldeki < işaretini <= yaparak da aynı sonucu alabilirsiniz.
Sorununuzun devamı halinde farklı sonuçları içerebilecek örnek dosya paylaşırsanız onun üzerinden daha somut çözümler sunulabilir.
İyi çalışmalar...
@ÖmerBey Örnek dosyayı ekledim. İlginiz için teşekkür ederim. Aşağıdaki linkini paylaşıyorum.
 
Merhaba,
D9 hücresi için sanırım aşağıdaki formül istenilen sonucu üretiyor.
Kod:
=EĞER(C9="";D8;EĞER(VE(C9<0;D8<0);C9+D8;C9))
 
Merhaba,
D9 hücresi için sanırım aşağıdaki formül istenilen sonucu üretiyor.
Kod:
=EĞER(C9="";D8;EĞER(VE(C9<0;D8<0);C9+D8;C9))
@ÖmerBey , Merhaba.
Gerçekten çok teşekkür ederim. Son formülünüzün başarılı bir şekilde istediğimi verdi. Önceki çözümleriniz de aslında başarılıydı ancak formüllü boş hücreler olunca biraz karmaşıklık olmuştu. Ben sizin basit bir formülle yaptığınıza karşılık en sonunda bir dizi formülü yazmıştım ki 250 tane hücreye bunu uygulamak ve sayfanın hesaplama süresi uzun sürüyordu. İşte asıl maharet, ustalık benim bir yığın dizi formülü ile başarmaya çalıştığımı basit bir IF formülü ile becerebilmek. Bu nedenle hayran kaldım. Baksanıza benim yazdığım formüle :)

=IF(C10="";D9;IF(AND(INDIRECT("C"&LARGE(IF($C$1:C10<>"";ROW($C$1:C10));1))<=0;INDIRECT("C"&LARGE(IF($C$1:C10<>"";ROW($C$1:C10));2))<=0);INDIRECT("C"&LARGE(IF($C$1:C10<>"";ROW($C$1:C10));1))+INDIRECT("D"&LARGE(IF($D$1: D9<>"";ROW($D$1: D9 ));1));INDIRECT ("C"&LARGE(IF($C$1:C10<>"";ROW($C$1:C10));1))))

Haha :) Güldüm kendime. Tekrar teşekkürler her şey için. Sağlıcakla kalın.
 
Bu hepimizin zaman zaman yaşadığı bir durum. Bazen belli bir çözüme öyle bir odaklanabiliyoruz ki; bu odaklanma bizim farklı bakış açılarıyla bakmamızı engelliyor. Bu durumda dışarıdan bakan biri farklı bir bakış açısıyla çok daha basit olan çözümü hemen görüveriyor. Bence daha fazlası değil.
Siz de sağlıcakla kalınız, iyi çalışmalar...
 
Bu hepimizin zaman zaman yaşadığı bir durum. Bazen belli bir çözüme öyle bir odaklanabiliyoruz ki; bu odaklanma bizim farklı bakış açılarıyla bakmamızı engelliyor. Bu durumda dışarıdan bakan biri farklı bir bakış açısıyla çok daha basit olan çözümü hemen görüveriyor. Bence daha fazlası değil.
Siz de sağlıcakla kalınız, iyi çalışmalar...
Bence daha fazlası, @ÖmerBey .
Sadece farklı bakış açısına indirmek basit olur. Bunun adı profesyonellik,ustalık. :)
Tekrar teşekkür ederim emeğiniz için. Sağlıcakla kalın.
 
Merhaba,

Konuyu anladığım kadarıyla @ÖmerBey in formülünü aşağıdaki gibi dizi formülüne çevirirseniz yardımcı sütun kullanmadan istediğiniz olacaktır.
Kod:
=MİN(EĞER(C9:C214="";D8:D213;EĞER(C9:C214<0;EĞER(D8:D213<0;C9:C214+D8:D213;C9:C214))))

Not: Detaylı deneme yapmadım.
 
Merhaba,

Konuyu anladığım kadarıyla @ÖmerBey in formülünü aşağıdaki gibi dizi formülüne çevirirseniz yardımcı sütun kullanmadan istediğiniz olacaktır.
Kod:
=MİN(EĞER(C9:C214="";D8:D213;EĞER(C9:C214<0;EĞER(D8:D213<0;C9:C214+D8:D213;C9:C214))))

Not: Detaylı deneme yapmadım.
@Ömer bey Merhaba,
Nasıl yani sadece bu dizi formülünü tek bir hücrede çalıştırark hem C sütunundaki ardışık negatif sayıların toplamını hesaplayıp daha sonra bu toplamların en küçüğünü mü yansıtıyor? Formülünüzü denedim ancak ardışık negatif sayıların toplamının en küçüğünü vermedi sonuç olarak ne yazık ki. Ya da ben hatalı kullandım. Formülünüzü "D9" hücresine Ctrl+Shift+Enter yaparak denedim. Sonuç olumsuz oldu. İlginiz için teşekkür ederim yine de. Çok sağolun.
 
Geri
Üst