Đăng ký học Excel và VBA cùng GPE tháng 10 - TPHCM

Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

Thắc mắc về sử dụng hàm MAX và MIN

Thảo luận trong 'Hàm và công thức Excel' bắt đầu bởi dvu58, 9 Tháng chín 2009.

  1. dvu58

    dvu58 Thành viên thường trực

    Chào các bạn!

    Có 1 vấn đề về hàm MAX và MIN muốn nhờ các bạn giải thích:

    1. Yêu cầu: Tìm số lớn nhất và nhỏ nhất trong một danh sách theo một điều kiện kèm theo.
    2. Cách thực hiện:
    a. Dùng các hàm DMAX hoặc DMIN - Kết quả: Tốt
    b. Dùng công thức mảng - Kết quả:
    + MAX: Cho kết quả đúng
    + MIN: Cho kết quả =0
    3. Đính kèm file.

    Thắc mắc:
    + Có thể cách dùng của tôi sai?
    + Có thể có một qui ước riêng nào đó? Tuy nhiên, tôi thấy rằng, về bản chất thì 2 hàm này là tương tự nhau.
    Mong các bạn giải thích giúp nhé! Cảm ơn các bạn rất nhiều.
     

    Các file đính kèm:

  2. thanh_tks

    thanh_tks Khó khăn biết dũng khí.

    Bạn lồng thêm IF vào :=MIN(IF(D2:D13=F15,F2:F13,""))
    Bạn bôi đen như hình rồi nhấn F9 thì hiểu ngay
     

    Các file đính kèm:

    • min.JPG
      min.JPG
      Kích thước:
      8.3 KB
      Đọc:
      144
    Lần chỉnh sửa cuối: 9 Tháng chín 2009
  3. dvu58

    dvu58 Thành viên thường trực

    về cách dùng MAX và MIN

    Cảm ơn bạn!

    Nhưng, vì sao MAX lại không phải dùng thêm IF vẫn được?
     
  4. thanh_tks

    thanh_tks Khó khăn biết dũng khí.

    Bạn xem lại bài trên!
    Mảng của (D2:D13=F15)*(F2:F13) =0;0;0;0;0;0;125;0;420;0;0;0. vậy min của nó là bao nhiêu?! ngược lại max của nó là bao nhiêu?!.
    thêm IF vào IF(D2:D13=F15,F2:F13,"")="";"";"";"";"";"";125;"";420;"";"";"".vậy min của nó là bao nhiêu?! ngược lại max của nó là bao nhiêu?!.
     
    Lần chỉnh sửa cuối: 9 Tháng chín 2009
  5. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Anh ơi, điều này đương nhiên rồi...
    Biểu thức này: (D2:D13=F15)*(F2:F13) sẽ ra kết quả là 1 mãng bao gồm các phần tử đúng điều kiện là 1 giá trị nào đó... còn các phần tử không đạt điều kiện sẽ ra kết quả = 0
    Vậy MIN của tất cả chúng đương nhiên sẽ là phần tử nhỏ nhất... mà trong trường hợp này là số 0
    Chính vì lẽ đó ta phải tùy biến 1 chút, bằng cách thêm IF vào... nói cho "nó" hiểu rằng những phần tử không đạt điều kiện thì = rổng ---> Hàm MAX và MIN khi tính toán sẽ bỏ qua các phần tử rổng
     
  6. solomon2211

    solomon2211 Thành viên tích cực

    Đối với hàm MIN, sau khi bạn dùng hàm mảng, có 2 vấn đề bạn nên xem lại đây:

    {=MIN((D2:D13=F15)*(F2:F13))}

    1. Phần đầu là phần điều kiện (D2:D13=F15), kết quả sẽ có dạng là 0;1;0;0;1 v.v...
    2. Khi lấy kết quả phần đầu nhân với (F2:F13) thì sẽ có kết quả là 0;a;0;0;b v.v...

    Như vậy, nếu pha6n (F2:F13) có giá trị luôn lớn hơn 0 thì số nhỏ nhất trong công thức luôn là 0; còn nếu có một giá trị nhỏ hơn không, nhưng thỏa điều kiện phần đầu thì kết quả sẽ đúng.
     
    Lần chỉnh sửa cuối: 9 Tháng chín 2009
  7. dvu58

    dvu58 Thành viên thường trực

    Hà! Càng bàn càng thấy rõ và hay nữa.
    Tuy nhiên, khi sử dụng cho MAX thì không nhất thiết phải dùng IF để lọc. Vậy có luôn luôn đúng không?
     
  8. dvu58

    dvu58 Thành viên thường trực

    Nếu kết thúc vấn đề này.....

    Đối với tôi, vấn đề trên đã quá rõ.

    Nếu không có bạn nào còn ý kiến gì, xin phép kết thúc và

    Trân trọng cảm ơn tất cả các bạn đã tích cực gỡ bí cho tôi.
     
  9. solomon2211

    solomon2211 Thành viên tích cực

    Kể cả khi bạn sử dụng hàm Max. Nếu các giá trị đều <0 thì kết quả hàm Max luôn là 0. Vậy bạn hiểu việc đúng sai thế nào rồi chứ gì.
     
  10. cutifight

    cutifight Thành viên mới

    Mình cũng vướng ngay chổ này, may quá lên đây gặp gay cao thủ, chân thành cảm ơn câu hỏi và câu trả lời của pro @thanh_thk
     

Chia sẻ trang này