Farklı sütunlardaki 2 sayının toplamını birer artırarak 30 a eşitlemek

Katılım
8 Ekim 2020
Mesajlar
21
Excel Vers. ve Dili
Excel 2016 VBA
Arkadaşlar merhaba.Bir türlü yapamadım yardımcı olurmusunuz. A sutununda 15, B sutununda 8 var diyelim. Ben bu sayıları toplamları 30 olana kadar birer arttırmak ve ikisinin toplamı 30 a eşit olduğu zaman sonucu hücreye yazdırmak istiyoorum nasıl yapabilirim acaba?
 
Katılım
17 Temmuz 2020
Mesajlar
7
Excel Vers. ve Dili
Excel 2010 - Visual Basic Application Version: 7.0
İkisini aynı anda birer birer arttırırsan sonuç hiç bi zaman 30 etmeyecek?
16+9 = 25
17+10 = 27
18+11 = 29
19+12 = 31

Makroyla mı yapmak istiyorsun? Yoksa formülle mi?
 
Katılım
8 Ekim 2020
Mesajlar
21
Excel Vers. ve Dili
Excel 2016 VBA
İkisini aynı anda birer birer arttırırsan sonuç hiç bi zaman 30 etmeyecek?
16+9 = 25
17+10 = 27
18+11 = 29
19+12 = 31

Makroyla mı yapmak istiyorsun? Yoksa formülle mi?
Cevapladığınız için çok teşekkür ederim. Bu şekilde olsun istiyorum
A Birimindeki 130 saat, - B Birimindeki 80 saat çalışmış olsun bu saatleri bir basamağını atarak güne çeviriyorum
130 saati 13, 80 saati de 8 olarak alıyorum. Bunları bir aya tamamlıyorum.
13-8
14 - 9
20 - 10

Bu personele 20 gün A biriminde 10 gün B birimine çalışmış diyorum. İki birimin de ücretleri farklı hesaplanıyor çünkü.

Toplam 30 u geçmesin ve en son işlemde dursun istiyoum. Mesela 29 da olur. Ama toplamlaro 30 u geçmeyecek. Bunu yapmak çokmu zor acaba?

Yani 20 gün a biriminde 10 gün B biriminde çalıştığını buluyorum. 30 olmasa bile ona en yakın sayıda kalsın istiyorum. Bu şekilde bir sürü çalışma saati geliyor liste şeklinde. Hepsini saatlerini güne çevirerek kalemle hesaplıyorum. Ama bunları formüzize etmek istiyorum artık. makro yada formül hangisi olursa. Olsun yeterki. Çok teşekkür ederim.
 
Katılım
17 Temmuz 2020
Mesajlar
7
Excel Vers. ve Dili
Excel 2010 - Visual Basic Application Version: 7.0
Örnek bir listeyi buraya yazarsan o liste üzerinden makro yapıp veriyim sana.
5-10 satırlık bi veri yaz bana
 
Katılım
17 Temmuz 2020
Mesajlar
7
Excel Vers. ve Dili
Excel 2010 - Visual Basic Application Version: 7.0
Cevapladığınız için çok teşekkür ederim. Bu şekilde olsun istiyorum
A Birimindeki 130 saat, - B Birimindeki 80 saat çalışmış olsun bu saatleri bir basamağını atarak güne çeviriyorum
130 saati 13, 80 saati de 8 olarak alıyorum. Bunları bir aya tamamlıyorum.
13-8
14 - 9
20 - 10

Bu personele 20 gün A biriminde 10 gün B birimine çalışmış diyorum. İki birimin de ücretleri farklı hesaplanıyor çünkü.

Toplam 30 u geçmesin ve en son işlemde dursun istiyoum. Mesela 29 da olur. Ama toplamlaro 30 u geçmeyecek. Bunu yapmak çokmu zor acaba?

Yani 20 gün a biriminde 10 gün B biriminde çalıştığını buluyorum. 30 olmasa bile ona en yakın sayıda kalsın istiyorum. Bu şekilde bir sürü çalışma saati geliyor liste şeklinde. Hepsini saatlerini güne çevirerek kalemle hesaplıyorum. Ama bunları formüzize etmek istiyorum artık. makro yada formül hangisi olursa. Olsun yeterki. Çok teşekkür ederim.
Aşağıdaki resimdeki gibi A,B ve C sütununa verilerini yaz.
A1,B1,C1: başlıkları olduğu gibi yaz verilerini 2.satırdan itibaren yaz.

Aşağıdaki kodu bi modul içine yapıştır ve çalıştır. İstediğin olacaktır.
Kod:
Sub Arttir()
    SonSatir = Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To SonSatir
        If Range("A" & i) = "" Then
            Exit For
        End If
        
        Deger1 = Range("A" & i)
        Deger2 = Range("B" & i)
        
        If Deger1 + Deger2 < 30 Then
            
            For x = 1 To 500
                HesaplananDeger1 = Range("A" & i) + 1
                HesaplananDeger2 = Range("B" & i) + 1
                toplam = HesaplananDeger1 + HesaplananDeger2
                If toplam > 30 Then
                    Exit For
                Else
                    Range("A" & i) = HesaplananDeger1
                    Range("B" & i) = HesaplananDeger2
                    Range("C" & i).Formula = "=A" & i & "+B" & i
                End If
                
            Next
            
        Else
            Range("C" & i) = Deger1 + Deger2
        End If
    Next
    
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Sayıları oranlayarak 30a tamamlar.
Kod:
Sub otuzaTamamla()
    For i = 1 To Cells(Rows.Count, 1).End(3).Row
        al1 = Cells(i, 1)
        al2 = Cells(i, 2)
        Top = al1 + al2
        fark = 30 - Top
        If fark > 0 Then
            If al1 > al2 Then
                al1 = al1 + Round(fark * (al1 / Top), 0)
                Cells(i, 3) = al1
                Cells(i, 4) = 30 - al1
            Else
                al2 = al2 + Round(fark * (al2 / Top), 0)
                Cells(i, 4) = al2
                Cells(i, 3) = 30 - al2
            End If
        End If
    Next i
End Sub
 
Katılım
21 Aralık 2016
Mesajlar
722
Excel Vers. ve Dili
Office 365 TR
Selamlar,

Formülle çözüm isterseniz,
(Sorudan anladığım kadarıyla, A ve B birimindeki değerler TAMSAYI ve çözüm de bu yönde yapıldı)

A2 hücresinde A Birim değeri (Ör. A2 : 11)
B2 hücresinde B Birim değeri (Ör. B2 : 8)

yazıyor olsun..

Sonuç olarak,

C2 hücresine A Birimi son değerini yazalım.. C2 hücresine

=A2+(EĞER(TEKMİ(TOPLA(A2:B2));29;30)-TOPLA(A2:B2))/2

formülünü yazın. (Sonuç : 16)

D2 hücresine B Birimi son değerini yazalım.. D2 hücresine

=B2+(EĞER(TEKMİ(TOPLA(A2:B2));29;30)-TOPLA(A2:B2))/2

formülünü yazın. (Sonuç : 13)

İsterseniz E2 hücresine de Toplam yazdırabilirsiniz.
 
Üst