GPE Phát hành sách: "Lập trình VBA trong Excel cho người mới bắt đầu - 2014" | "VBA trong Excel - Cải thiện và tăng tốc - 2013"
Trang 1/2 1 2 cuốicuối
Hiển thị kết quả tìm kiếm từ 1 đến 10 trên tổng số: 14
  1. #1
    Tham gia ngày
    06 2006
    Bài gởi
    36
    Cảm ơn
    79
    Được cảm ơn 147 lần trong 36 bài viết

    Hàm tìm kiếm với nhiều điều kiện trong Excel 2003 (= Vlookups và Hlookups 2007)

    Chẳng biết có ai post chưa, google không thấy, mình thấy cái này hay hay, post lên chia xẻ cùng mọi người.

    Các bạn thấy rằng trong Excel 2003 trở về trước, hàm VLOOKUP chỉ tìm với 1 điều kiện. Kết hợp các hàm INDEX, MATCH, IF với hàm mảng sẽ cho kết quả tìm thỏa mãn nhiều điều kiện.

    Cú pháp: {=INDEX(LookUpRange, MATCH(1, ((Array1=DK1)*(Array2=DK2)*(....)), 0), Column)}
    Thí dụ: Có 1 bảng có các cột: Mã hàng, khách hàng, Bộ phận, Số lượng ... Tìm kiếm Mã hàng A do Khách Hàng B mua, thuộc bộ phận C (SL >0), cột mã hàng là cột đầu

    Cú pháp: {=INDEX(Data, MATCH(1, ((KH="A")*(Bophan="B")*(SL>0)), 0), 1)}

    Lưu ý: Nếu nhiều dòng thỏa điều kiện thì hàm chỉ lấy dòng đầu tiên giống VLOOKUP
    Tập tin đính kèm Tập tin đính kèm
    thay đổi nội dung bởi: adam_tran, 29-11-10 lúc 12:10 PM Lý do: Up file


  2. #2
    Tham gia ngày
    05 2008
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,729
    Cảm ơn
    807
    Được cảm ơn 2,213 lần trong 1,174 bài viết
    INDEX(), MATCH(), IF ...kết hợp thì có nhiều chứ riêng
    (= Vlookups và Hlookups 2007)
    thì chưa thấy & cũng chưa hiểu cấu trúc nó ra làm sao -> mặc dùng đang dùng Excel~2007 ?

    Bạn có file chi tiết và công thức của nó không ? (đừng dùng hàm tự tạo...)
    Reject
    (Debt – Disease – Drugs – Depression – Dice – Divorce – Dalliance – Death – Drinking – Deviancy - Demoralized people - Demotivation - poor Direction)

    "NHẠC GÌ CŨNG NHẢY..."
    anhtunhn@yahoo.com

  3. #3
    Cũng với VD trên, các bạn giúp mình tìm kiếm điều kiện ở cột E (E2): nếu có rất nhiều dòng thì khi tìm thấy A cột A2 thì đáp sỗ sẽ là sẽ bằng tổng số lượng ở cột D. VD: cột A có 3 chữ A thì sẽ bằng tổng của 3 giá trị D2,D4,D11 (=10+35+89=134).
    Thank all

  4. #4
    Tham gia ngày
    09 2009
    Nơi Cư Ngụ
    Ayun Pa - Gia Lai
    Bài gởi
    4,315
    Cảm ơn
    9,860
    Được cảm ơn 7,725 lần trong 3,678 bài viết
    Trích Nguyên văn bởi toanthang1975 View Post
    Cũng với VD trên, các bạn giúp mình tìm kiếm điều kiện ở cột E (E2): nếu có rất nhiều dòng thì khi tìm thấy A cột A2 thì đáp sỗ sẽ là sẽ bằng tổng số lượng ở cột D. VD: cột A có 3 chữ A thì sẽ bằng tổng của 3 giá trị D2,D4,D11 (=10+35+89=134).
    Thank all
    Có phải ý bạn là tính tổng (cột D) của các mã hàng loại A?
    Nếu đúng thì chỉ đơn giản là SUMIF thôi: =SUMIF(A2:A16,"A",D2:D16)
    Còn nếu thêm nhiều điều kiện thì có thể dùng SUMPRODUCT hoặc SUMIFS (nếu sử dụng Excel 2007, 2010)
    Hãy biết nhìn lên để thấy mình còn kém cỏi
    Hãy biết nhìn xuống để thấy mình có thể giúp nhiều người.
    Evaluate | SpeedOn | ExcelDiet | Scripting.Dictionary | Array

  5. #5

    Question

    Trích Nguyên văn bởi adam_tran View Post
    Chẳng biết có ai post chưa, google không thấy, mình thấy cái này hay hay, post lên chia xẻ cùng mọi người.

    Các bạn thấy rằng trong Excel 2003 trở về trước, hàm VLOOKUP chỉ tìm với 1 điều kiện. Kết hợp các hàm INDEX, MATCH, IF với hàm mảng sẽ cho kết quả tìm thỏa mãn nhiều điều kiện.

    Cú pháp: {=INDEX(LookUpRange, MATCH(1, ((Array1=DK1)*(Array2=DK2)*(....)), 0), Column)}
    Thí dụ: Có 1 bảng có các cột: Mã hàng, khách hàng, Bộ phận, Số lượng ... Tìm kiếm Mã hàng A do Khách Hàng B mua, thuộc bộ phận C (SL >0), cột mã hàng là cột đầu

    Cú pháp: {=INDEX(Data, MATCH(1, ((KH="A")*(Bophan="B")*(SL>0)), 0), 1)}

    Lưu ý: Nếu nhiều dòng thỏa điều kiện thì hàm chỉ lấy dòng đầu tiên giống VLOOKUP
    Mình không hiểu sao lại có thêm dấu { trước dấu = Index(.....}. Với lại khi mình copy công thức ở ô A20 sang ô A21 lại không ra được kết quả. Bạn hướng dẫn chi tiết lại giùm mình hen. Cảm ơn bạn nhiều

  6. #6
    Mình không hiểu sao lại có thêm dấu { trước dấu = Index(.....}. Với lại khi mình copy công thức ở ô A20 sang ô A21 lại không ra được kết quả. Bạn hướng dẫn chi tiết lại giùm mình hen. Cảm ơn bạn nhiều
    dấu đấy hình như là công thức mảng, muốn câu lệnh thực hiện phải nhấn tổ hợp 3 phím ctr , shift, enter

  7. #7
    Mình muốn hỏi là có cách nào để tìm kiếm nếu nhiều dòng đều thỏa mãn điều kiện và mình muốn lấy tất cả những dòng đó không. Trong ví dụ nếu khách hàng A ở bộ phận B mua mã hàng D nên số lượng >0, mình muốn lấy cả mã hàng D và XXX thỏa mãn điều kiện cho trước.

  8. #8
    Tham gia ngày
    06 2010
    Bài gởi
    4
    Cảm ơn
    4
    Được cảm ơn 0 lần trong 0 bài viết
    Trích Nguyên văn bởi adam_tran View Post
    Chẳng biết có ai post chưa, google không thấy, mình thấy cái này hay hay, post lên chia xẻ cùng mọi người.

    Các bạn thấy rằng trong Excel 2003 trở về trước, hàm VLOOKUP chỉ tìm với 1 điều kiện. Kết hợp các hàm INDEX, MATCH, IF với hàm mảng sẽ cho kết quả tìm thỏa mãn nhiều điều kiện.

    Cú pháp: {=INDEX(LookUpRange, MATCH(1, ((Array1=DK1)*(Array2=DK2)*(....)), 0), Column)}
    Thí dụ: Có 1 bảng có các cột: Mã hàng, khách hàng, Bộ phận, Số lượng ... Tìm kiếm Mã hàng A do Khách Hàng B mua, thuộc bộ phận C (SL >0), cột mã hàng là cột đầu

    Cú pháp: {=INDEX(Data, MATCH(1, ((KH="A")*(Bophan="B")*(SL>0)), 0), 1)}

    Lưu ý: Nếu nhiều dòng thỏa điều kiện thì hàm chỉ lấy dòng đầu tiên giống VLOOKUP
    Minh ko hieu tai sao trong ham match MATCH(1, ((KH="A")*(Bophan="B")*(SL>0)), 0) , trị do lai la 1 nhi? Moi nguoi ai biet giai thich giup minh voi.

    nghiaphuc: Lần sau bạn nhớ gõ tiếng Việt có dấu nhé.
    thay đổi nội dung bởi: nghiaphuc, 27-02-14 lúc 02:06 PM

  9. #9
    Tham gia ngày
    08 2013
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    67
    Cảm ơn
    15
    Được cảm ơn 30 lần trong 23 bài viết
    Trích Nguyên văn bởi kyu_86 View Post
    Minh ko hieu tai sao trong ham match MATCH(1, ((KH="A")*(Bophan="B")*(SL>0)), 0) , trị do lai la 1 nhi? Moi nguoi ai biet giai thich giup minh voi.
    ((KH="A")*(Bophan="B")*(SL>0))
    Trong phần này nó sẽ tạo ra 1 mãng gồm {True, false, true, ...}*{
    True, false, true, ...}*{True, false, true, ...} = {1,0,1,1,1,0....}
    Do đó phải dùng số 1 cho LOOKUP_VALUE trong hàm MATCH này


  10. Thành viên sau cảm ơn zztantaibazz về bài viết này:


  11. #10
    Tham gia ngày
    06 2010
    Bài gởi
    4
    Cảm ơn
    4
    Được cảm ơn 0 lần trong 0 bài viết
    Xin các cao thủ giúp đỡ e. E loay hoay không biết dùng hàm tìm kiếm thế nào. E gửi lên đây file đính kèm, mong các cao thủ chỉ giáo.
    Tập tin đính kèm Tập tin đính kèm

Trang 1/2 1 2 cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. Làm thế nào để hiển thị được macro 4 trong excel 2003/2007?
    Viết bởi vhkhoi trong chuyên mục Hàm và công thức Excel
    Trả lời: 6
    Bài mới gởi: 11-04-14, 02:56 PM
  2. Cách cài Mathtype cho Excel 2003 và 2007
    Viết bởi sockman trong chuyên mục Những vấn đề chung
    Trả lời: 5
    Bài mới gởi: 24-12-12, 04:17 PM
  3. Macro trong excel 2007 có chạy được trong 2003 không?
    Viết bởi dangkieungan trong chuyên mục Hỏi đáp về VBA - Macro
    Trả lời: 3
    Bài mới gởi: 29-07-12, 11:15 AM
  4. Hỏi cách in lặp lại nhiều dòng không liên tục trong Excel 2007???
    Viết bởi ladykiller81 trong chuyên mục Định dạng, trình bày, in ấn bảng tính
    Trả lời: 3
    Bài mới gởi: 01-10-10, 09:21 AM
  5. khác biệt excel 2007 và 2003
    Viết bởi TrantatThangvtt trong chuyên mục Excel 2007, 2010 & 2013
    Trả lời: 8
    Bài mới gởi: 03-08-08, 02:08 PM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]