1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Hỏi về xử lý data trong Excel

Chủ đề trong 'Hỏi đáp Tin học' bởi tranhoanges1, 04/07/2007.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. tranhoanges1

    tranhoanges1 Thành viên mới

    Tham gia ngày:
    27/09/2004
    Bài viết:
    238
    Đã được thích:
    0
    Hỏi về xử lý data trong Excel

    Giả sử tôi có 2 cột data trong Excel. Tôi cần so sánh 2 cột data này để tìm ra những khác biệt:

    [​IMG]

    Trong trường hợp có hàng trăm hàng data trogn một cột thì việc tìm ra khác biệt giữa 2 cột là rất khó. Vậy bạn nào biết cách làm phép so sánh tự động để tìm ra các sự khác biệt thì xin chỉ giúp. tôi xin cảm ơn
  2. hdkhung

    hdkhung Thành viên mới

    Tham gia ngày:
    04/06/2007
    Bài viết:
    149
    Đã được thích:
    0
    tạm thời thì mình chưa tìm ra Function nào có chức năng đó, nhưng nếu chỉ so sánh như thế thì bạn thử cách này xem
    Bạn dùng 1 cột trung gian, ví dụ cột C, lập công thức là C = B - A
    Khi đó giá trị ở C = 0 thì A và B ko có khác biệt, nếu khác 0 thì có.
  3. tranhoanges1

    tranhoanges1 Thành viên mới

    Tham gia ngày:
    27/09/2004
    Bài viết:
    238
    Đã được thích:
    0
    Rất cảm ơn bạn đã quan tâm nhưng nếu data là kí tự (a,b,c... chẳng hạn) thì hàm trừ này sẽ không áp dụng được. Vẫn chờ đợi giúp đỡ của các bạn. Thanks!
  4. tv_fan

    tv_fan Thành viên mới

    Tham gia ngày:
    24/07/2005
    Bài viết:
    1.061
    Đã được thích:
    0
    Bạn tạo 1 macro như sau

    Sub CheckColumn()
    Dim i, j, maxRows As Integer
    Dim temp As String
    maxRows = 16 '' so hang o sheet 1

    ''Boi mau cot 1
    For i = 1 To maxRows

    temp1 = Trim(Worksheets("Sheet1").Cells(i, 1).Value)
    For j = 1 To maxRows
    temp2 = Trim(Worksheets("Sheet1").Cells(j, 2).Value)
    If temp1 = temp2 Then
    Worksheets("Sheet1").Cells(i, 1).Font.Color = RGB(255, 0, 0)
    End If
    Next j
    Next i

    ''Boi mau cot 2
    For j = 1 To maxRows
    temp1 = Trim(Worksheets("Sheet1").Cells(j, 2).Value)
    For i = 1 To maxRows
    temp2 = Trim(Worksheets("Sheet1").Cells(i, 1).Value)
    If temp1 = temp2 Then
    Worksheets("Sheet1").Cells(j, 2).Font.Color = RGB(255, 0, 0)
    End If
    Next i
    Next j


    End Sub

    chỉ điền đúng tên shít và maxRow là dùng được
    [​IMG]
    Chúc thành công !!!!
  5. hdkhung

    hdkhung Thành viên mới

    Tham gia ngày:
    04/06/2007
    Bài viết:
    149
    Đã được thích:
    0
    @tv_fan: tiện bạn cho mình hỏi luôn, trong trường hợp trên, nếu cố gắng dùng Format Con***ional của Excel thì sao nhỉ?
    Mình đã test thử trên Cell A1 và B1 nếu 2 giá trị 2 Cell khác thì B1 sẽ tô màu đỏ. Nhưng cái khó là ko copy xuống các Cell B2, B3, B4... được.
    Có thể giải quyết bằng cách nào ko nhỉ?
  6. tv_fan

    tv_fan Thành viên mới

    Tham gia ngày:
    24/07/2005
    Bài viết:
    1.061
    Đã được thích:
    0
    Làm macro hầu hết giải quyết được mọi việc, bạn mô tả bằng hình hoặc demo của bạn được không ?
  7. tranhoanges1

    tranhoanges1 Thành viên mới

    Tham gia ngày:
    27/09/2004
    Bài viết:
    238
    Đã được thích:
    0
    Tôi không biết tạo Macro nên đành tạm dùng cách này vậy:
    [​IMG]
    Xin cảm ơn tất cả các bạn đã quan tâm
  8. Hangruoi

    Hangruoi Thành viên mới

    Tham gia ngày:
    24/07/2006
    Bài viết:
    126
    Đã được thích:
    0
    Cần gì phải sử dụng macro, dùng hàm Exact là ổn. Sau đó bôi đen các ô chứa công thức đó, rồi chọn Format/ Con***ional Formatting...
    Khi cửa sổ Con***ional Formatting... hiện ra, bạn chọn Cell Value Is trong hộp đầu tiên. Hộp thứ hai chọn equal to, hộp thứ 3 gõ chữ TRUE hoặc FALSE để phân biệt. Sau đó bấm vào nút Format để chọn dấu hiệu phân biệt giữa chúng.
  9. tv_fan

    tv_fan Thành viên mới

    Tham gia ngày:
    24/07/2005
    Bài viết:
    1.061
    Đã được thích:
    0
    Ý của bạn là nếu A1=B1 thì c1 là TRUE
    nếu A2<> B2 thì C2 là FALSE đúng không ?
    Nếu đúng thì dùng công thức như sau C1=IF(A1=B1, "TRUE", "FALSE")

Chia sẻ trang này