bir hücredeki en yakın sayı değerini bulmak

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba arkadaşlar,
Elimdeki dosyanın C koolonundaki değer , sağındaki hangi iki kolonun toplamından oluşmaktadırı arıyorum.
Örneğin C2 Hücresindeki değer E2 ile AB2 sutun aralığında hangi iki sayının toplamıdır.veya bu aralıkta hangi iki sayıyı toplarsak C2 sayısına en yakın sayısyı buluruz.
Ve bu satır bazında C kolonundaki değerleri en son satıra kadar kontrol ederek devam edecek.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Aşağıdaki kodlar ile yapabilirsiniz.
Sonuç değeri "D" kolonuna yazılacak şekilde ayarladım, eğer değiştirmek isterseniz SonucKolonu = "D" satırını değiştirin.

Kod:
Option Explicit

Sub Test()
    Dim Bak1 As Integer
    Dim Bak2 As Integer
    Dim Toplam As Long
    Dim BakFark As Long
    Dim Fark As Long
    Dim ToplamAdresler As String
    Dim Bak As Long
    Dim SatirSay As Long
    Dim SonucKolonu As String
    SonucKolonu = "D"
    SatirSay = Cells(Rows.Count, "C").End(3).Row
    Columns(SonucKolonu).ClearContents
    For Bak = 2 To SatirSay
        For Bak1 = 5 To 27
            For Bak2 = Bak1 + 1 To 28
                Toplam = Cells(Bak, Bak1) + Cells(Bak, Bak2)
                BakFark = Abs(Range("C" & Bak).Value - Toplam)
                Fark = Abs(Range("C" & Bak).Value - Range(SonucKolonu & Bak).Value)
                If Fark > BakFark Then
                    Range(SonucKolonu & Bak).Value = Toplam
                    ToplamAdresler = Cells(Bak, Bak1).Address & " + " & Cells(Bak, Bak2).Address & " = " & Toplam
                End If
                If Range("C" & Bak).Value = Range(SonucKolonu & Bak).Value Then
                    GoTo bulundu
                End If
            Next Bak2
        Next Bak1
bulundu:
    Range(SonucKolonu & Bak).Value = Replace("(" & ToplamAdresler & ")", "$", "")
    Next Bak
End Sub
 
Üst