• DİKKAT

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

Barkodlar Arası Fark Bulma

Katılım
10 Ocak 2024
Mesajlar
3
Excel Vers. ve Dili
SQL
Merhabalar

2 Farklı SQL tablosundan aldığım, barkod ve fiyat bilgilerini içeren listede karşılaştırma yapmak istiyorum.

Yardımcı olabilirseniz çok sevinirim.

Örn

Aşağıdaki tablo birebir aynı, fakat 100k lık bir satırda hangisi aynı hangisi değil bilmiyorum ve aralarında fiyat farkı olanlarında var olduğunu biliyorum, iki alanı karşılaştırıp, barkodlar arası fiyat farkı olanları bulmak istiyorum.

BarcodeNo

Price1

Price2



BarcodeNo

Price1

Price2

3838824213293

200.00

160.00



8690088004131

9.50

9.50

4015000975940

200.00

160.00



8690088004209

9.50

9.50

6281031271704

200.00

160.00



8690088004216

19.00

9.00

8690091325377

73.50

22.00



8690088004179

13.50

13.50

8690091425381

73.50

22.00



3838824213293

200.00

160.00

8690088004131

9.50

9.50



4015000975940

200.00

160.00

8690088004209

9.50

9.50



6281031271704

200.00

160.00

8690088004216

19.00

9.00



8690091325377

73.50

22.00

8690088004179

13.50

13.50



8690091425381

73.50

22.00
 
249139
249140


Kod:
Sub test()
    Dim s As Worksheet, sut%, veri, i&, ii%, y, ky$, itm, itms, sat&
    With CreateObject("Scripting.Dictionary")
        sut = 2

        For Each s In Sheets(Array("Sayfa1", "Sayfa2"))
            veri = s.Range("A2:C" & s.Cells(Rows.Count, 1).End(3).Row).Value
            For i = 1 To UBound(veri)
                ky = veri(i, 1)
                If Not .exists(ky) Then
                    Dim w(1 To 5)
                    w(1) = ky
                    w(sut) = veri(i, 2)
                    w(sut + 1) = veri(i, 3)
                    .Item(ky) = w
                Else
                    y = .Item(ky)
                    y(sut) = veri(i, 2)
                    y(sut + 1) = veri(i, 3)
                    .Item(ky) = y
                End If
            Next i
            sut = sut + 2
        Next s
        itms = .items
    End With

    sat = 1
    
    With Sheets("FarkTablosu")
        .Rows("2:" & Rows.Count).Clear
        For Each itm In itms
            'If Not (itm(2) = itm(4) And itm(3) = itm(5)) Then 'sadece tutarsız urünleri göstermek için
            sat = sat + 1
            .Cells(sat, 1).NumberFormat = "@"
            .Cells(sat, 2).Resize(, 4).NumberFormat = "#,##0.00"
            .Cells(sat, 1).Resize(, 5).Value = itm
            For ii = 2 To 3
                If .Cells(sat, ii).Value <> .Cells(sat, ii + 2).Value Then
                    .Cells(sat, ii).Interior.Color = vbRed
                    .Cells(sat, ii + 2).Interior.Color = vbRed
                End If
            Next ii
            'End If
        Next itm
    End With

End Sub
 
Çok teşekkür ederim, en kısa sürede deneyeceğim.
 
Geri
Üst