So sánh và bôi màu

Liên hệ QC

quyet.pham

Thành viên mới
Tham gia
30/5/09
Bài viết
7
Được thích
0
Chào các bạn~
Tôi là thành viên mới của diễn đàn mình, tôi có một vấn đề muốn các bạn giúp sức:
Tôi cần nhập dữ liệu và so sánh 2 cột khác nhau trong 2 sheet của một file excel, cụ thể như sau:
Gia sử trong sheet thứ nhất tôi có 1 cột có tên "Nam" (dòng 1)
Các cell tiếp theo là tên của các thành viên
VD: Thanh
Toan
Trang
Nga
Tại sheet thứ 2 tôi cũng có một cột có tên "Name" (Dóng 1)
và các tên xuất hiện
VD: Toan
Dung
Tuan
Bien
Vien

Bài toán đặt ra là, so sánh 2 cột trên, nếu trường nào ở sheet 1 mà không xuất hiện ở sheet 2 thì bôi màu "đỏ"
Nếu bạn nào có thể viết macro cho bài toán này thì giúp tôi nhé.
Cảm ơn các bạn rất nhiều~~%#^#$
moz-screenshot.jpg
 
Chào các bạn~
Tôi là thành viên mới của diễn đàn mình, tôi có một vấn đề muốn các bạn giúp sức:
Tôi cần nhập dữ liệu và so sánh 2 cột khác nhau trong 2 sheet của một file excel, cụ thể như sau:
Gia sử trong sheet thứ nhất tôi có 1 cột có tên "Nam" (dòng 1)
Các cell tiếp theo là tên của các thành viên
VD: Thanh
Toan
Trang
Nga
Tại sheet thứ 2 tôi cũng có một cột có tên "Name" (Dóng 1)
và các tên xuất hiện
VD: Toan
Dung
Tuan
Bien
Vien

Bài toán đặt ra là, so sánh 2 cột trên, nếu trường nào ở sheet 1 mà không xuất hiện ở sheet 2 thì bôi màu "đỏ"
Nếu bạn nào có thể viết macro cho bài toán này thì giúp tôi nhé.
Cảm ơn các bạn rất nhiều~~%#^#$
moz-screenshot.jpg
Nếu bạn không dùng macro, bạn cũng có thể dùng hàm vlookup dò tìm nếu có người xuất hiện ở sheet1 thì cho là "co" để làm điều kiện cho chúng ta tạo CF.
Bạn xem file đính kèm nhé
Thân
 

File đính kèm

  • cf.xls
    16.5 KB · Đọc: 64
Tôi cần nhập dữ liệu và so sánh 2 cột khác nhau trong 2 sheet của một file excel, cụ thể như sau:

Gia sử trong sheet thứ nhất tôi có 1

Tại sheet thứ 2 tôi cũng có một cột có tên "Name" (Dóng 1)

Bài toán đặt ra là, so sánh 2 cột trên, nếu trường nào ở sheet 1 mà không xuất hiện ở sheet 2 thì bôi màu "đỏ"
Nếu bạn nào có thể viết macro cho bài toán này thì giúp tôi nhé.
Cảm ơn các bạn rất nhiều~~%#^#$
[/IMG]
Bạn đến đây & tham khảo:
http://giaiphapexcel.com/forum/showthread.php?p=126837&posted=1#post126837

Bạn đến đây tham khảo
Nếu cứ phải bôi màu thì xem bài dùng macro; Nếu chưa hiểu mình sẽ giúp bạn 1 macro mới
 
Gấp đôi so với yêu cầu luôn thể!

Macro sau sẽ tô màu cho 2 danh sách ở 2 trang tính khác nhau luôn
(Xem thêm trong file đính kèm)
PHP:
Option Explicit
Sub ListNames()
 Dim Rng As Range, sRng As Range, Clls As Range
 Dim jJ As Byte, Sh As Worksheet
 
 For jJ = 1 To 2
   Set Sh = Sheets(Choose(jJ, "GPE", "GPE1"))
   Set Rng = Sh.Range(Choose(jJ, Sh.[b1], Sh.[A1]), Choose(jJ, Sh.[b1], _
           Sh.[A1]).End(xlDown))
   Sheets(Choose(jJ, "GPE1", "GPE")).Select
   For Each Clls In Range(Choose(jJ, [A2], [B2]), Choose(jJ, [A2], [B2]).End(xlDown))
      Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
      If sRng Is Nothing Then _
         Clls.Interior.ColorIndex = IIf(jJ = 1, 39, 38)
   Next Clls
 Next jJ
End Sub
--=0
 

File đính kèm

  • GPE.rar
    8.1 KB · Đọc: 51
Cảm ơn cả nhà rất nhiều, tất cả các bài trả lời của mọi người tôi đã đọc hết và đã thực hiện...kết quả tốt, nhưng bài của bạn "ChanhTQ@" rất đúng ý của tôi... cảm ơn bạn
Vì file của tôi đôi khi có rất nhiều trường, nên bài cảu bạn ChanhTQ@ khả quan nhất, song hết lòng cảm ơn mọi người...
Giờ bài toán của tôi có thêm phần rắc rối hơn, mong các cao thủ giúp sức:
Đề bài như sau:
Chúng ta có 2 sheet trong một file excel có nhiều cột cần so sánh tương tự, nhưng lại phụ thuộc nhau..
sheet 1 chúng ta có 3 cột, có tên là "Tên", "Địa chỉ thường trú", "Địa chỉ tạm chú"
sheet 2 chúng ta cũng có 3 cột có tên tương tự..
Bài toán đặt ra là:
- Trước tiên, so sánh tên. Nếu xuất hiện ở sheet 1không xuất hiện ở sheet 2 thì bôi màu chữ lên "ĐỎ" ở sheet 1. (Bôi những ô chỉ xuất hiện ở sheet 1, cả 3 trường là "tên" và hai địa chỉ)
- Nếu trùng nhau, đi so sánh ở cột "Địa chỉ thường trú". Nếu địa chỉ thường trú chỉ xuất hiện ở sheet 1 mà không xuất hiện ở sheet 2 thì bôi màu "ĐỎ" tại ô "Địa chỉ thường trú" và cả ô "Địa chỉ tạm trú".
- Nếu hai trường hợp trên vẫn trùng nhau, so sánh nốt trường còn lại "Địa chỉ tạm trú", nếu khác nhau thì bôi màu "ĐỎ" tại ô này.
Nếu cả 3 trường trên trùng nhau thì không cần làm gì cả...
(Tôi không biết làm sao để có thể paste sheet của tôi vào bài viết để mọi người dễ theo dõi, nên đành viết chay thế này vậy. Mong mọi người thông cảm và giúp đỡ. Nếu ai biết làm thế nào để paste 1 sheet vào bài viết thì chỉ giúp tôi nhé)
Mong nhận được sự giúp đỡ của các bạn~
Cảm ơn cả nhà nhiều~
 
Đề bài như sau:
Chúng ta có 2 sheet trong một file excel có nhiều cột cần so sánh tương tự, nhưng lại phụ thuộc nhau..
sheet 1 chúng ta có 3 cột, có tên là "Tên", "Địa chỉ thường trú", "Địa chỉ tạm chú"
sheet 2 chúng ta cũng có 3 cột có tên tương tự..
Bài toán đặt ra là:
- Trước tiên, so sánh tên. Nếu xuất hiện ở sheet 1không xuất hiện ở sheet 2 thì bôi màu chữ lên "ĐỎ" ở sheet 1. (Bôi những ô chỉ xuất hiện ở sheet 1, cả 3 trường là "tên" và hai địa chỉ)
- Nếu trùng nhau, đi so sánh ở cột "Địa chỉ thường trú". Nếu địa chỉ thường trú chỉ xuất hiện ở sheet 1 mà không xuất hiện ở sheet 2 thì bôi màu "ĐỎ" tại ô "Địa chỉ thường trú" và cả ô "Địa chỉ tạm trú".
- Nếu hai trường hợp trên vẫn trùng nhau, so sánh nốt trường còn lại "Địa chỉ tạm trú", nếu khác nhau thì bôi màu "ĐỎ" tại ô này.
Nếu cả 3 trường trên trùng nhau thì không cần làm gì cả...
Cái gì cũng làm được cả, nhưng chẳng lẻ làm... chay! Bạn phải đưa file lên chứ
(Tôi không biết làm sao để có thể paste sheet của tôi vào bài viết để mọi người dễ theo dõi, nên đành viết chay thế này vậy. Mong mọi người thông cảm và giúp đỡ. Nếu ai biết làm thế nào để paste 1 sheet vào bài viết thì chỉ giúp tôi nhé)
Mong nhận được sự giúp đỡ của các bạn~
Cảm ơn cả nhà nhiều~
Làm thế này nè: (xem hình)

attachment.php


attachment.php


attachment.php


attachment.php
 

File đính kèm

  • untitled1.JPG
    untitled1.JPG
    33.1 KB · Đọc: 139
  • untitled2.JPG
    untitled2.JPG
    18.2 KB · Đọc: 135
  • untitled3.JPG
    untitled3.JPG
    63.5 KB · Đọc: 135
  • untitled4.JPG
    untitled4.JPG
    64 KB · Đọc: 134
Giúp bạn 1 lần đây
Hãy xem có phải vầy không?

A|B|C
Ng An | No 01 Le Duan | 35 Lo Duc
Ng Anh| 51 Le Duan | 35 Lo Su
Le By| 35 Hoa lo| 14529 Ngo Tat To
Le Thi Thom|QL1 Bien hoa|Kien An - Hai phong
Nguyen Viet Hong |KCX Tan Thuan|35 Dong da, Da Nang



A | C | E
Nguyen Viet Hong |KCX Tan Thuan|35 Dong da, Da Nang
Ng Anh| 35 Quan Su|51 Le Duan
Le By| 35 Hoa lo|9/25/ Ngo Tat To
Le Thi Thom|QL1 Bien hoa|Kien An - Hai phong
Ng Tan|No 01 Le Duan| 35 Lo Duc

Lần sau bạn tự làm lấy nha!
 
Lần chỉnh sửa cuối:
PHP:
Option Explicit
Sub NameAnd2Address()
 Dim Sh As Worksheet
 Dim Rng As Range, sRng As Range, Clls As Range
 Dim TTru As Range
 
 Set Sh = Sheets("GPE"):         Sheets("HoSo").Select
 Set Rng = Sh.Range("A1:A" & Sh.[a65500].End(xlUp).Row)
 For Each Clls In Range("A2:A" & [a65500].End(xlUp).Row)
   Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
   If sRng Is Nothing Then
      Clls.Resize(, 3).Font.ColorIndex = 3
   Else
      If Clls.Offset(, 1).Value <> sRng.Offset(, 2).Value Then
         Clls.Offset(, 1).Resize(, 2).Font.ColorIndex = 3
      Else
         If Clls.Offset(, 2).Value <> sRng.Offset(, 4).Value Then _
            Clls.Offset(, 2).Font.ColorIndex = 3
      End If
   End If
 Next Clls
End Sub

(Không biết sao không tải file lên được: Bạn xem suông vậy nha!
 
Lần chỉnh sửa cuối:
Cảm ơn ban SA_DQ rất nhiều!
Bài làm của bạn đã gần đúng được ý của tôi.. nhưng có một vấn đề.
Tôi đã thử cách làm của bạn, và kết quả là nó đi so sánh theo từng row một, và nếu xuất hiện nhiều hơn 1 row có kết quả trùng nhau thì nó đã báo đỏ hết,
Cụ thể bạn có thể sửa lại giúp tôi được không, tôi có đính kèm bài mà tôi đã thử dưới đây, mọng bạn giúp đỡ.
Cảm ơn nhiều~~
 
Lần chỉnh sửa cuối:
Vì không attach được nên tôi xin nhắc lại kết quả như sau:
Sau khi thử với cách làm của SA_DQ, kết quả là chỉ tìm kiếm và so sánh một lần, Nếu có nhiều hơn một lần thì kết quả trả lại luôn là bôi đỏ ở tất cả các ô tiếp theo...
GT-E1070 ZK XXV GT-E1070 ZA XFV GT-E1070 ZB ERU GT-E1070 ZC CIS GT-E1070 XA MEA GT-E1070 XE SEA GT-E1210 ZK SWA GT-E1210 ZA XXV GT-E1210 ZB XFV GT-E1210 ZC ERU GT-E1210 XA CIS GT-E1210 XE MEA GT-E1210 ZK SEA GT-E2100 ZA SWA GT-E2100 ZB XXV GT-E2100 ZC XFV GT-E2100 XA ERU GT-E2100 XE CIS GT-E2100 ZK MEA GT-E2100 ZA SEA GT-E2100 ZB SWA GT-E2100 ZC XXV GT-E2100 XA XFV SGH-E250 XE ERU SGH-E250 ZK CIS SGH-E250 ZA MEA SGH-E250 ZB SEA SGH-E250 ZC SWA GT-S3500 XA XXV GT-S3500 XE XFV GT-S3500 ZK ERU GT-S3500 ZA CIS GT-S3500 ZB MEA GT-C3053 ZC SEA

GT-E1070 ZK XXV GT-E1070 ZB ERU GT-E1070 XE SEA GT-E2100 ZA XXX GT-E2100 ZB XXY GT-E2100 ZC XFV GT-E2100 ZC XXV GT-E2100 XA XFV SGH-E250 XE XXZ SGH-E250 ZK CIS SGH-E250 ZA SDW SGH-E250 ZB SEA SGH-E250 ZC SWA GT-S3500 XA SFR GT-S3500 XE XFV GT-S3500 ZK ERT GT-S3500 ZA CIS GT-S3500 ZB MEA GT-C5212 XE MEA S3110 ZK XFV GT-E2100 ZA ERU T2153 ZB CIS S2544 XE MEA D3611 ZK MEA V1236 ZA XFV B4522 ZB ERU SGH-E250 ZA XFV SGH-E250 ZB ERU GT-S3500 ZA XFV

Đấy là kết quả...
 
Vì không attach được nên tôi xin nhắc lại kết quả như sau:
Sau khi thử với cách làm của SA_DQ, kết quả là chỉ tìm kiếm và so sánh một lần, Nếu có nhiều hơn một lần thì kết quả trả lại luôn là bôi đỏ ở tất cả các ô tiếp theo...
GT-E1070 ZK XXV
GT-E1070 ZA XFV
GT-E1070 ZB ERU
GT-E1070 ZC CIS
GT-E1070 XA MEA
GT-E1070 XE SEA
GT-E1210 ZK SWA
GT-E1210 ZA XXV
GT-E1210 ZB XFV
GT-E1210 ZC ERU
GT-E1210 XA CIS
GT-E1210 XE MEA
GT-E1210 ZK SEA
GT-E2100 ZA SWA
GT-E2100 ZB XXV
GT-E2100 ZC XFV
GT-E2100 XA ERU
GT-E2100 XE CIS
GT-E2100 ZK MEA
GT-E2100 ZA SEA
GT-E2100 ZB SWA
GT-E2100 ZC XXV
GT-E2100 XA XFV
SGH-E250 XE ERU
SGH-E250 ZK CIS
SGH-E250 ZA MEA
SGH-E250 ZB SEA
SGH-E250 ZC SWA
GT-S3500 XA XXV
GT-S3500 XE XFV
GT-S3500 ZK ERU
GT-S3500 ZA CIS
GT-S3500 ZB MEA
GT-C3053 ZC SEA

GT-E1070 ZK XXV
GT-E1070 ZB ERU
GT-E1070 XE SEA
GT-E2100 ZA XXX
GT-E2100 ZB XXY
GT-E2100 ZC XFV
GT-E2100 ZC XXV
GT-E2100 XA XFV
SGH-E250 XE XXZ
SGH-E250 ZK CIS
SGH-E250 ZA SDW
SGH-E250 ZB SEA
SGH-E250 ZC SWA
GT-S3500 XA SFR
GT-S3500 XE XFV
GT-S3500 ZK ERT
GT-S3500 ZA CIS
GT-S3500 ZB MEA
GT-C5212
XE MEA
S3110
ZK XFV
GT-E2100 ZA ERU
T2153
ZB CIS
S2544
XE MEA
D3611 ZK MEA
V1236
ZA XFV
B4522 ZB ERU
SGH-E250 ZA XFV
SGH-E250 ZB ERU
GT-S3500 ZA XFV

Đấy là kết quả...
Chỉ còn cách này,,không hiểu tại sao..Mong các cao thủ trợ giúp~
 
Vì không attach được nên tôi xin nhắc lại kết quả như sau:
Bạn hãy xem lại dung lượng file của bạn! Có thể nó to quá nên không gữi lên được!
Hãy bỏ bớt những thứ không cần thiết rồi lưu file lại, miển sao dung lượng còn khoảng < 100KB là có thể up vô tư
Chứ xem thế này oải lắm
 
Chiều qua tới giờ mình cũng không đưa file lên được!

Bạn cùng mình chúng ta chịu khó dùng chức năng [Table ]. . . [/table] của diễn đàn vậy!
Chờ dữ liệu của bạn!

Chúc vui!

To NDU:
Có vẻ như không phải vậy, trước đến hôm qua với mình vẫn bình thường & mình cũng rõ kích thước tới hạn của file mà!
 
Lần chỉnh sửa cuối:
Bạn tham khảo cách dùng Conditional Formatting thử xem nhé.
 

File đính kèm

  • Conditinal Formatting.xls
    33 KB · Đọc: 21
Cảm ơn các bạn nhiều~
 
Lần chỉnh sửa cuối:
kết quả không như mong đợi. Mong các bạn chỉ giúp, sai ở đâu?
 
Bạn xem thêm trong file đính kèm

kết quả không như mong đợi. Mong các bạn chỉ giúp, sai ở đâu?

PHP:
Option Explicit
Sub KhaoSatTrung()
 Dim Rng As Range, sRng As Range, Clls As Range
 Dim eRw As Long, Zz As Long
 
 Set Rng = Range([H1], [h65500].End(xlUp))
 For Each Clls In Range([A2], [A65500].End(xlUp))
   Set sRng = Rng.Find(Clls.Value, , xlFormulas, xlWhole)
   If sRng Is Nothing Then
      Clls.Resize(, 3).Interior.ColorIndex = 34
   Else
      If Clls.Offset(, 1).Value <> sRng.Offset(, 1).Value Then
         Clls.Offset(, 1).Resize(, 2).Interior.ColorIndex = 34
      Else
         If Clls.Offset(, 2).Value <> sRng.Offset(, 2).Value Then _
            Clls.Offset(, 2).Interior.ColorIndex = 34
      End If
   End If
 Next Clls
End Sub

Hiện tại mình tô màu nền theo những yêu cầu của bạn;
Mình đang để 2 table tại chỉ 1 trang tính; Sau khi chúng ta thống nhứt kết quả, mình sẽ bổ sung sau.
 

File đính kèm

  • GPE.rar
    9.4 KB · Đọc: 21
Web KT
Back
Top Bottom