Toplam Değere Göre Hücre Değeri

Katılım
14 Eylül 2020
Mesajlar
56
Excel Vers. ve Dili
2019
Arkadaşlar merhaba,

Ekte ilettiğim dosyada STOK durumu "toplam" 0 olan KODların(aynı koddan 4 kayıt varsa 4'ünün toplam sonucu) DURUM sütununda YES yazıyorsa A yazmasını istiyorum. NO yazanlar yine aynı şekilde kalsın istiyorum.

Bunu nasıl pratik yoldan halledebiliriz?

Teşekkür ederim.

 
Merhaba,

Makro yada formülle yapabilirsiniz.

Formül ile;

J2 hücresine;

=EĞER(VE(F2=0;B2="yes");"A";B2)

yazıp alt satırlara kopyalayın. Daha sonra J sütununu kopyalayıp B sütununa değerleri olarak yapıştırırsınız.
 
@Ömer dostum ilgin için teşekkürler. Ancak ben F sütunundaki her satır için değil E sütunundaki her ürünün kendi içindeki alt toplam F'sine göre bir ayarlama yapmak istemiştim. E4="ÖRNEK" F4=4 değil de "ÖRNEK" yazan tüm E'lerin toplam f'sine göre sonuç.
 
Son düzenleme:
Her gruba bakılacak, grup toplamı sıfır olanların durum sütundaki "yes" leri A olacak. Doğru mudur?
 
Deneyiniz.
Kod:
Sub durum_degistir()
   
    Dim i As Long, deg As String, d As Object, c As Range, Adr As String, a1, a2, s
 
    Set d = CreateObject("Scripting.Dictionary")
   
    Application.ScreenUpdating = False
 
    For i = 2 To Cells(Rows.Count, "E").End(xlUp).Row
        deg = Cells(i, "E")
        If Not d.exists(deg) Then
            s = Cells(i, "F")
            d.Add deg, s
        Else
            s = d.Item(deg)
            s = s + Cells(i, "F")
            d.Item(deg) = s
        End If
    Next i
   
    a1 = d.keys: a2 = d.items
    For i = 0 To d.Count - 1
        s = a2(i)
        If s = 0 Then
            Set c = [E:E].Find(a1(i), , xlValues, xlWhole)
            If Not c Is Nothing Then
                Adr = c.Address
                Do
                    If UCase(Cells(c.Row, "B")) = "YES" Then
                        Cells(c.Row, "B") = "A"
                    End If
                    Set c = [E:E].FindNext(c)
                Loop While Not c Is Nothing And c.Address <> Adr
            End If
        End If
    Next i
   
    MsgBox "Değişim Tamamlandı.", vbInformation
   
End Sub
 

Ekli dosyalar

@Ömer Emeğin için teşekkürler. Bu kodları toplama işlemini yaparken değeri - olan hücreleri hariç tutacak şekilde nasıl düzenleyebiliriz? Kriterlere bakarken her hücredeki sonuç 0 ise revize olsun istiyorum. Mevcut durumda -5 ve +5 gibi değerleri toplayıp 0 edenleri de revize ediyor çünkü.
 
Geri
Üst