Hỏi về đối chiếu dữ liệu giữa 2 Sheet bất kỳ?

Liên hệ QC

autokiss

Thành viên hoạt động
Tham gia
22/12/07
Bài viết
173
Được thích
11
Chào các bạn, hiện tại tôi đang phải cộng số liệu của rất nhiều máy và đối chiếu với số liệu của 1 người khác. 2 định dạng bảng của 2 bên khác hẳn nhau nên rất khó khăn trong việc đối chiếu.

Bây giờ tôi muốn hỏi có cách nào để đối chiếu số liệu giữa 2 Sheet (Sheet T5 và Sheet DC của tôi), những số liệu trùng nhau thì tô hết màu (màu nền màu vàng chẳng hạn). Số liệu không có trong bảng kia thì tô màu đỏ hoặc giữ nguyên không?


Tôi có file đính kèm các bạn xem giúp tôi với. Cảm ơn nhiều!
 

File đính kèm

Bạn tham khảo xem thế nào nhá.


Oh bạn làm hay quá! Mình đã thử rồi nhưng ý mình muốn đối chiếu từng số của Sheet T5 với Sheet DC, ví dụ Sheet T5 có 5 số 789.000, nếu Sheet DC chỉ có 4 số 789.000 thì Sheet T5 chỉ bôi vàng cho 4 số thôi vì Sheet DC chỉ có 4 số thôi mà. Tương tự như vậy nếu Sheet DC xuất hiện 4 số giống nhàu mà Sheet T5 chỉ có 3 số đó thôi thì Sheet DC có 1 số không tô màu. Mình làm việc với nhiều phiếu tờ nên muốn tìm ra phiếu sót ấy mà.


Cảm ơn các bạn!
 
Lần chỉnh sửa cuối:
Oh bạn làm hay quá! Mình đã thử rồi nhưng ý mình muốn đối chiếu từng số của Sheet T5 với Sheet DC, ví dụ Sheet T5 có 5 số 789.000, nếu Sheet DC chỉ có 4 số 789.000 thì Sheet T5 chỉ bôi vàng cho 4 số thôi vì Sheet DC chỉ có 4 số thôi mà. Tương tự như vậy nếu Sheet DC xuất hiện 4 số giống nhàu mà Sheet T5 chỉ có 3 số đó thôi thì Sheet DC có 1 số không tô màu. Mình làm việc với nhiều phiếu tờ nên muốn tìm ra phiếu sót ấy mà.


Cảm ơn các bạn!

bạn thử xem file này, mỗi sheet có một lệnh cho sheet đó. :p
 

File đính kèm

bạn thử xem file này, mỗi sheet có một lệnh cho sheet đó. :p


Cách làm này của bạn hay quá! Code cũng dễ hiểu. Cảm ơn bạn rất nhiều!

À bạn cho mình hỏi là tại Sheet T5 mình cần đối chiếu số "280.000" so với Sheet "DC" nhưng không được, nó chỉ đối chiếu 1 số 280.000 duy nhất hoặc tìm ra đủ 4 số 280.000 ở bên Sheet T5, trong khi Sheet DC chỉ có 2 số 280.000 thôi chẳng hạn. Hoặc Sheet DC có 10 số 280.000 mà Sheet T5 chỉ có 4 số thôi → Lẽ ra Sheet DC chỉ bôi 4 số 280.000 còn 6 số khác để trắng. Cái này có khắc phục được không bạn?
 
Lần chỉnh sửa cuối:
Ok, mình sót mất 1 điều kiện. Bạn xem qua thế nào.
 

File đính kèm

Dẻo ghê. Hay thì còn không được chỗ nào nữa ? Code dễ hiểu thì tự sửa cũng được mà !

Hi, dễ hiểu tức là mình có thể đoán được được phần nhiều code ấy mà bạn.

Ok, mình sót mất 1 điều kiện. Bạn xem qua thế nào.

Mình đang áp dụng trực tiếp cách làm của bạn vào công việc của mình đây. Tuy hơi chậm nhưng mình cũng không gấp gáp lắm. Cảm ơn bạn nhiều!
 
Tham khảo đoạn code này. Dùng chung cho cả 2 sheet. Chỉ tô màu đủ số lượng, em nào dư ra thì mặt trắng bét, em nào không có mặt thì đỏ chét...
PHP:
Sub FindAndMark()
Application.ScreenUpdating = False
Dim cll As Range, kt As Range, sh As String, Kt2 As Range, Found
Sheets("T5").UsedRange.Interior.ColorIndex = xlNone
Sheets("DC").UsedRange.Interior.ColorIndex = xlNone
sh = IIf(ActiveSheet.Name = "T5", "DC", "T5")
For Each cll In ActiveSheet.UsedRange
    If cll <> "" And cll.Interior.ColorIndex <> 6 And IsNumeric(cll) Then
        Set kt = Sheets(sh).UsedRange.Find(cll, , , 1)
        If Not kt Is Nothing Then
            If kt.Interior.ColorIndex = 6 Then
                Found = kt.Address
                Do
                    Set kt = Sheets(sh).UsedRange.FindNext(kt)
                    If kt.Interior.ColorIndex <> 6 Then
                        kt.Interior.ColorIndex = 6
                        cll.Interior.ColorIndex = 6
                        Exit Do
                    End If
                Loop Until Found = kt.Address
            Else
               kt.Interior.ColorIndex = 6
               cll.Interior.ColorIndex = 6
            End If
        Else
            cll.Interior.ColorIndex = 3
        End If
    End If
Next
Application.ScreenUpdating = True
End Sub
 
Code của bạn nhanh quá! Mình xem code cũng hiểu được phần nào. Cảm ơn bạn nhiều!
Bạn cũng nên chú ý là nếu trong dữ liệu của bạn có ô nào công thức bị lỗi thì code sẽ báo lỗi. Để bỏ qua lỗi này có thể thêm dòng
On Error Resume Next vào đầu code như bên dưới

Sub abc()
On Error Resume Next
.......
 
Bạn cũng nên chú ý là nếu trong dữ liệu của bạn có ô nào công thức bị lỗi thì code sẽ báo lỗi. Để bỏ qua lỗi này có thể thêm dòng
On Error Resume Next vào đầu code như bên dưới

Sub abc()
On Error Resume Next
.......

So sánh dữ liệu mà bỏ qua lỗi thì những hàng lỗi ấy lấy gì nhận ra?
 
Bạn cũng nên chú ý là nếu trong dữ liệu của bạn có ô nào công thức bị lỗi thì code sẽ báo lỗi. Để bỏ qua lỗi này có thể thêm dòng
On Error Resume Next vào đầu code như bên dưới

Sub abc()
On Error Resume Next
.......

Công thức của mình chỉ có Subtotal thôi nên không sợ bị lỗi công thức bạn à, vẫn đáp ứng yêu cầu bình thường mà.
 
Web KT

Bài viết mới nhất

Back
Top Bottom