Tìm điểm khác nhau giữa 2 bảng dữ liệu (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

huonglien1901

GPE là ngôi nhà thứ 2 của tôi!!!
Tham gia
17/4/16
Bài viết
2,702
Được thích
2,434
Giới tính
Nam
Nghề nghiệp
Nhân viên kỹ thuật in ấn
Chào mọi người!

Em có vấn đề nhờ mọi người hỗ trợ.

Em có 2 bảng dữ liệu:

Bảng 1: Đây là điều kiện để so sánh

Bảng 2: Đây là bảng DATA dữ liệu.

Em muốn lấy điều kiện trong bảng 1 so sánh trong bảng 2 để tím điểm sự khác nhau.

ví dụ: Nếu là sai thì chỉ ra lỗi khác nhau, như dư khoảng trắng
Hoặc thiếu số thi tìm vị trị thiếu của dữ liệu đó.
Nếu dư số thì tìm vị trí dư của dữ liệu đó.

Em cảm ơn mọi người nhiều.
 

File đính kèm

Đọc file của bạn hiểu chết liền. Cần ví dụ vài chỗ xem.
 
Thứ nhất, có vẻ như bài toán của bạn cần đến VBA với nhiều lý do;
Lí do thứ nhất là bảng số liệu với kích cỡ như vậy là quá lớn để so sánh;
. . . .

Thứ hai: Vấn đề của bạn không fải là đi so sánh tím đúng sai; Mà là fải làm sao nhập số liệu vô bảng đúng ngay từ đầu.
Để số liệu như đóng rác vậy thì tìm cái nổi gì & tìm ra làm sao?


Bạn tham khảo cái ni cho vui nha:
PHP:
Sub SoKhop()
 Dim Arr(), Rng As Range, sRng As Range
 Dim J As Long, W As Long, MyColor As Byte, Tmr As Double

 Arr() = Range([A2], [A2].End(xlDown)).Value
 Set Rng = Range([D2], [D65500].End(xlUp))
 MyColor = 34:                  Randomize
 Tmr = Timer()
 For J = 1 To UBound(Arr())
    Set sRng = Rng.Find(Arr(J, 1), , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        MyColor = MyColor + 1
        If MyColor > 42 Then MyColor = 34
        sRng.Interior.ColorIndex = MyColor
        sRng.Offset(, 1).Value = J
    Else
    '   Còn Viét Tiép  '
    End If
 Next J
 MsgBox Timer() - Tmr
End Sub
 
Lần chỉnh sửa cuối:
Thứ nhất, có vẻ như bài toán của bạn cần đến VBA với nhiều lý do;
Lí do thứ nhất là bảng số liệu với kích cỡ như vậy là quá lớn để so sánh;
. . . .

Thứ hai: Vấn đề của bạn không fải là đi so sánh tím đúng sai; Mà là fải làm sao nhập số liệu vô bảng đúng ngay từ đầu.
Để số liệu như đóng rác vậy thì tìm cái nổi gì & tìm ra làm sao?


Bạn tham khảo cái ni cho vui nha:
PHP:
Sub SoKhop()
 Dim Arr(), Rng As Range, sRng As Range
 Dim J As Long, W As Long, MyColor As Byte, Tmr As Double

 Arr() = Range([A2], [A2].End(xlDown)).Value
 Set Rng = Range([D2], [D65500].End(xlUp))
 MyColor = 34:                  Randomize
 Tmr = Timer()
 For J = 1 To UBound(Arr())
    Set sRng = Rng.Find(Arr(J, 1), , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        MyColor = MyColor + 1
        If MyColor > 42 Then MyColor = 34
        sRng.Interior.ColorIndex = MyColor
        sRng.Offset(, 1).Value = J
    Else
    '   Còn Viét Tiép  '
    End If
 Next J
 MsgBox Timer() - Tmr
End Sub
Dạ đúng rồi Bác Hoàng ơi. Dữ liệu sheet Kết quả phải nhập đúng khi đưa vào,

vậy có cách xử lý nào hay hơn không Bác?

Em cảm ơn Bác nhiều!
 
Thuật toán để giải vấn đề này là không tưởng:
ví dụ: Nếu là sai thì chỉ ra lỗi khác nhau, như dư khoảng trắng
Hoặc thiếu số thi tìm vị trị thiếu của dữ liệu đó.
Nếu dư số thì tìm vị trí dư của dữ liệu đó.

Ví dụ 123456789012 đem so với 612345678901 & 212345678901
thì bạn sẽ cho là số nào đúng?
 
Dạ đúng rồi Bác Hoàng ơi. Dữ liệu sheet Kết quả phải nhập đúng khi đưa vào,

vậy có cách xử lý nào hay hơn không Bác?

Em cảm ơn Bác nhiều!
Muốn khống chế phải nhập đúng, có thể dùng Validation hay gì gì đó, nhập sai thì không cho nhập, khỏi phải so sánh.
 
Muốn khống chế phải nhập đúng, có thể dùng Validation hay gì gì đó, nhập sai thì không cho nhập, khỏi phải so sánh.
Dạ đúng rồi Bác, dữ liệu sheet kết quả phải nhập đúng từ đầu. Còn dữ liệu so sánh làm điều kiện có thể nhập đúng và sai.
 
Thuật toán để giải vấn đề này là không tưởng:


Ví dụ 123456789012 đem so với 612345678901 & 212345678901
thì bạn sẽ cho là số nào đúng?
Dạng câu hỏi của Bác quá khó, trường hợp này em chưa nghĩ đến. Nếu sheet kết quả đúng chính là bảng để so sánh với các điều kiện đã lập.
 
Căn cứ vào đâu mà bạn nêu rằng:
Sai, ở vị trí số 2, số đúng là số 9 (Dòng 10)

Sai, Dư 2 khoảng trắng

Sai, ở vị trí số 6, số đúng là số 1 (Dòng 17)

Tại sao sai ở những vị trị bạn nêu, mà không ở các vị trí khác?
 
Căn cứ vào đâu mà bạn nêu rằng:


Tại sao sai ở những vị trị bạn nêu, mà không ở các vị trí khác?
Tại em làm ví dụ để minh họa thôi Bác ơi.
Chắc chắn sẽ xảy ra ở vị trí khác thôi Bác.

Chúc Bác buổi trưa ngon miệng!
 

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

Back
Top Bottom