Hàm ISNA và hàm ISERROR có giống nhau?

Thảo luận trong 'Hướng dẫn sử dụng các hàm trong Excel' bắt đầu bởi TRA KHUC RIVER, 8 Tháng năm 2009.

  1. TRA KHUC RIVER

    TRA KHUC RIVER Thành viên thường trực

    1/ Mình được biết hàm ISNA là hàm bẩy lỗi
    - Cú pháp hàm ISNA(Biểu thức cần kiểm tra)
    ISNA() sẽ trả về giá trị là TRUE nếu biểu thức đó trả về giá trị là #N/A, và FALSE nếu biểu thức đó không phải là #N/A
    - Còn hàm ISERROR(value) kiểm tra value có lỗi hay không (tất cả các lỗi)
    Như vậy 2 hàm này giống và khác nhau ở điểm nào?
    2/ Mình có file excel được bác ndu làm giúp, mình muốn ứng dụng nó vào công việc nhưng đọc hoài không hiểu. Nhờ các bác giải thích giùm, mình rất cảm ơn.
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 8 Tháng năm 2009
  2. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Câu 1: Bạn vừa hỏi vừa tự trả lời đấy thôi.
    Hàm ISERROR dùng để bẫy tất cả các lỗi, kể cả lỗi #N/A!
    Hàm ISNA chỉ dùng để bẫy lỗi #N/A!
    Nói cách khác, hàm ISNA là một trong những đứa con của hàm ISERROR.
    Bạn hiểu chúng giống nhau và khác nhau chỗ nào rồi chứ.
     
  3. TRA KHUC RIVER

    TRA KHUC RIVER Thành viên thường trực

    Vâng cảm ơn anh. Như vậy thay vì dùng hàm ISNA hay hàm ISEVEN...ta chỉ cần dùng hàm ISERROR là được đúng không anh?
     
  4. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Iseven là hàm kiểm tra một số là số chẵn hay số lẻ chứ không phải là hàm kiểm tra lỗi. Vì vậy nó không có mối liên hệ nào với hàm Iserror hết nha bạn.
     
  5. TRA KHUC RIVER

    TRA KHUC RIVER Thành viên thường trực

    Vậy sao mình đọc các hàm do bác BNTT viết như thế này mà:

    Nhóm Hàm IS

    Nhóm hàm này gồm những hàm dùng để kiểm tra dữ liệu trong Excel.
    Tất cả đều trả về giá trị TRUE nếu kiểm tra thấy đúng và FALSE nếu kiểm tra thấy sai.

    Cú pháp
    :
    =ISBLANK(value)

    =ISERR(value)

    =ISERROR(value)

    =ISEVEN(number)

    =ISLOGICAL(value)

    =ISNA(value)

    =ISNONTEXT(value)

    =ISNUMBER(value)

    =ISODD(number)

    =ISREF(value)

    =ISTEXT(value)
    Bảng tóm tắt cách dùng của nhóm hàm IS:
    [​IMG]Hình này đã được thay đổi kích thước. Nhấp vào đây để xem hình đầy đủ. Kích thước hình gốc là 839x501.[​IMG]
     
  6. BNTT

    BNTT Bùi Nguyễn Triệu Tường

    Bạn xem cái này đi: Nhóm hàm IS
     
  7. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Trong file của bạn có các công thức sau:
    1.
    Mã:
    =IF(ISERROR(SEARCH(F$5,$D6,1)),"","X")
    Công thức này dùng để đánh dấu những chi tiết bị hỏng trong một máy.
    SEARCH(F$5,$D6,1) Tìm tên chi tiết (F5) trong cell tình trạng (D6).
    IF(ISERROR(SEARCH(F$5,$D6,1)),"","X") Nếu tìm không thấy (SEARCH() trả về #VALUE!, ISERROR() trả về TRUE) thì bỏ trống, Nếu tìm thấy (SEARCH() trả về một số, ISERROR() trả về FALSE) thì đánh dấu "X".
    2.
    Mã:
    {=SUMPRODUCT((TRANSPOSE($F7:$J7)="X")*(DG!$D$4:$D$8))}
    Tính tổng thành tiền dựa vào các chi tiết hỏng được đánh dấu. Ở đây có lẽ hàm TRANSPOSE() là hơi lạ. Do $F7:$J7 là một mảng 1 dòng, DG!$D$4:$D$8 là mảng 1 cột nên phải dùng TRANSPOSE() để chuyển mảng $F7:$J7 thành mảng dòng. Như vậy hàm SUMPRODUCT() mới hiểu. Còn công thức mảng là do hàm TRANSPOSE() luôn được sử dụng với công thức mảng.

    Tuy nhiên, nếu bạn sử dụng file này thì tôi đề xuất bạn chỉnh lại cấu trúc bảng đơn giá theo chiều ngang. Như vây công thức sẽ không cần TRANSPOSE() và công thức mảng.
     
  8. TRA KHUC RIVER

    TRA KHUC RIVER Thành viên thường trực

    Cảm ơn bạn huuthang_bd hôm trước bạn cũng đã làm giúp mình file này có điều mình không hiểu chổ =FALSE nhờ bạn giải thích giùm. File này có rất nhiều phương án giải quyết, với trình độ của mình chỉ nghiên cứu các file do anh em làm giúp cũng đủ phê rồi.
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 8 Tháng năm 2009
  9. ndu96081631

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

    Công thức:
    =SUMPRODUCT(--(ISERROR(SEARCH(DG!$C$4:$C$8,SC!D5))=FALSE),DG!$D$4:$D$8)
    Giải thích đơn giản là: Chừng nào hàm SEARCH(DG!$C$4:$C$8,SC!D5) không bị lổi thì mới tính tổng DG!$D$4:$D$8
    Thế thôi!
    ISERROR(SEARCH(DG!$C$4:$C$8,SC!D5))=FALSE là không bị lổi
    ISERROR(SEARCH(DG!$C$4:$C$8,SC!D5))=TRUE là... có lổi (đương nhiên)
     
  10. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Hàm ISERROR() dùng để kiểm tra các giá trị lỗi, vì vậy giá trị nào lỗi sẽ trả về False còn không lỗi thì trả về True. Nhưng cái ta đang cần là giá trị không lỗi (SEARCH() không trả về lỗi có nghĩa là chi tiết được tìm thấy trong cell tình trạng, tương đương với chi tiết đó bị hỏng) để tính tiền. =False được sử dụng với mục đích đổi ngược các giá trị True, False lại (False = False sẽ trả về True, True = False sẽ trả về False). =False tương đương với hàm NOT(). Bạn có thể thay thế ISERROR(SEARCH())=FALSE bằng NOT(ISERROR(SEARCH()))
     
  11. TRA KHUC RIVER

    TRA KHUC RIVER Thành viên thường trực

     
  12. ndu96081631

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

    Ví dụ:
    SUMPRODUCT((A1:A10)*(B1:B10))
    Thì nó sẽ tính như sau:
    - Lấy A1 nhân với B1 ---> Ra kết quả KQ1 (nhớ để đó)
    - Lấy A2 nhân với B2 ---> Ra kết quả KQ2 (nhớ để đó)
    ...........
    - Lấy A10 nhân với B10 ---> Ra kết quả KQ10 (nhớ để đó)
    Cuối cùng cộng tất cả KQ1 , KQ2... KQ10 lại với nhau... thế thôi
    Còn SUMIF thì bạn biết rồi... tự so sánh đi
     
  13. ST-Lu!

    ST-Lu! Love Wingchun

    Bác ơi cái đoạn này
    IF(ISERROR(SEARCH(F$5,$D6,1)),"","X")

    {=SUMPRODUCT((TRANSPOSE($F7:$J7)="X")*(DG!$D$4:$D$8))}

    Như vậy nếu có lỗi để rỗng, còn không lỗi đánh dấu X thì hàm Sumproduct vẫn tính được ạh?
     
  14. huuthang_bd

    huuthang_bd Thay thái độ đổi cuộc đời

    Đương nhiên là tính được rồi. Lúc này Sumproduct() hoạt động giống như hàm Sumif().
     
  15. dauquangvuong

    dauquangvuong Thành viên mới

    mình muốn hỏi là trong công thức =SUMPRODUCT(--(ISERROR(SEARCH(DG!$C$4:$C$8,SC!D5))=FALSE),DG!$D$ 4:$D$8) . Mình bỏ dấu "--" thì công thức cho về giá trị 0. Mình không hiểu ý nghĩa của dấu "--" . có ai chỉ mình với .
    Cám ơn nhiều.
     

Chia sẻ trang này