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

Liên hệ QC

TRA KHUC RIVER

Thành viên thường trực
Tham gia
3/10/07
Bài viết
392
Được thích
138
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.
 

File đính kèm

  • TinhtrangVT_01(1).xls
    67 KB · Đọc: 898
Lần chỉnh sửa cuối:
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ứ.
 
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?
 
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?
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.
 
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:
wol_error.gif
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.
ISFUNCTIONS.jpg
 
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.
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.
 
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.
 

File đính kèm

  • TinhtrangVT_02.xls
    53.5 KB · Đọc: 273
Lần chỉnh sửa cuối:
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ô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)
 
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.
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()))
 
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

Hàm SUMPRODUCT là tính tổng của tích nghĩa là sao hả anh? Nó có khác với hàm sumif không?
 
Hàm SUMPRODUCT là tính tổng của tích nghĩa là sao hả anh? Nó có khác với hàm sumif không?
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
 
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.

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?
 
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?
Đương nhiên là tính được rồi. Lúc này Sumproduct() hoạt động giống như hàm Sumif().
 
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.
 
Web KT
Back
Top Bottom