• Thứ Tư, 01/06/2005 22:29 (GMT+7)

    Tìm theo hai điều kiện

    Đánh giá

    Như bạn biết, trong Excel để tìm kiếm một giá trị thoả mãn điều kiện nào đó, ta có thể dùng hàm Vlookup hay Hlookup. Tuy nhiên, hai hàm này chỉ cho phép tìm kiếm theo 1 điều kiện mà thôi. Ví dụ chúng ta có một bảng dữ liệu như hình 1, yêu cầu đặt ra là tìm điểm toán của một học sinh trong danh sách theo 2 điều kiện giới tính và tên. Vậy ta phải làm thế nào đây?

    Hình 2

    Tôi sẽ giới thiệu với các bạn một hàm tự tạo để làm việc này.

    Trước tiên, bạn vào menu Tools\Macro\Visual Basic Editor (Alt + F11). Tại cửa sổ Microsoft Visual Basic, vào menu Insert\Module và nhập đoạn mã sau vào module vừa tạo.

     

    Function FindTwoCondition(Table As Range, Val1 As Variant, _

    Val1Occrnce As Integer, Val2 As Variant, Val2Col As Integer, ResultCol As Integer)

    'Tabel la bang du lieu

    'Val1 Dieu kien thu nhat

    'Val1Occrnce gia tri thu n cua dieu kien trong cot

    'Val2 dieu kien thu hai

    'Val2Col cot thu n cua dieu kien thu 2

    'ResultCol cot thu n can tim

     

    Dim i As Integer, iCount As Integer

    Dim rCol As Range

     

      For i = 1 To Table.Rows.Count

        If Table.Cells(i, 1) = Val1 And _

          Table.Cells(i, Val2Col) = Val2 Then

          iCount = iCount + 1

        End If

       

        If iCount = Val1Occrnce Then

          FindTwoCondition = Table.Cells(i, ResultCol)

          Exit For

        End If

      Next i

    End Function

     

    Sau khi đã nhập xong đoạn mã trên, bạn quay trở lại màn hình làm việc Excel bằng cách ấn Alt+Q. Bây giờ ta có thể sử dụng hàm vừa tạo như những hàm mà Excel đã hỗ trợ. Ví dụ tôi cần tìm Điểm Toán của người có tên là "Sơn" và có giới tính là "Nữ".

    Trước tiên tôi lập bảng điều kiện như hình 2, tại ô I6 tôi nhập công thức sau:

    =FindTwoCondition($B$4:$F$13,I4,1,I5,3,4)


    Trong đó:


     - 
    $B$4:$F$13: Vùng dữ liệu

     -  I4: Tên cần tìm

     -   1: Tìm tên Sơn đầu tiên

     -  I5: Giới tính cần tìm

     -    3: Số thứ tự của cột Giới tính trong vùng dữ liệu

     -    4: Số thứ tự của cột Điểm Toán trong vùng dữ liệu


    Kết quả sẽ trả về là 7.
    Chú ý ở đây hàm không phân biệt chữ thường chữ hoa.

     

    Lâm Quang Bình

    Binhlq77@yahoo.co.uk

     

    ID: A0504_140
    Ý kiến của bạn? Ý kiến của bạn?
    Tin ngày :