- Tham gia
- 30/5/06
- Bài viết
- 1,630
- Được thích
- 17,440
- Nghề nghiệp
- Bác sĩ
Trong Excel có hàm Vlookup, Hlookup,..để tìm và cho ra một giá trị náo đó, những hàm này đơn thuần là tìm theo một điều kiện hay một giá trị.
Trong một CSDL các thông tim thường có liên hệ với nhau, đôi khi chúng ta cần tìm ra một giá trị thoả mãn n hiều điều kiện.
VD: Mình muốn tìm một nhân viên mà:
- Có gia đình
- Số con <3
- Số ngày công >=26
Các thông tin về gia đình, số con nằm trong DMNV, ngày công có trong sổ chấm công.
Với VD trên thì hình như các công cụ của Excel và các hàm không làm được?
(Autofilter và Advance Filter chỉ thực hiện trên một sổ -sheet))
Mình muốn gõ công thức vào một ô để nhận được tên nhân viên thoả mãn các điều kiện trên
Trước tiên xin chia xẻ với các bạn bài báo được đăng trên PCWord
Ví dụ chúng ta có một bảng dữ liệu, 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?
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, 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
Trích từ : http://www.pcworld.com.vn
Lần chỉnh sửa cuối: