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

 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,642
Excel Vers. ve Dili
Pro Plus 2021
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
 
Katılım
10 Ocak 2024
Mesajlar
3
Excel Vers. ve Dili
SQL
Çok teşekkür ederim, en kısa sürede deneyeceğim.
 
Üst