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.

 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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.
 
Katılım
14 Eylül 2020
Mesajlar
56
Excel Vers. ve Dili
2019
@Ö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:

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Her gruba bakılacak, grup toplamı sıfır olanların durum sütundaki "yes" leri A olacak. Doğru mudur?
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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

Katılım
14 Eylül 2020
Mesajlar
56
Excel Vers. ve Dili
2019
@Ö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ü.
 
Üst