Lỗi công thức Match (1 người xem)

Người dùng đang xem chủ đề này

comem7295

Thành viên mới
Tham gia
18/9/13
Bài viết
12
Được thích
0
Lỗi công thức Match và count

Mình dùng hàm match ở phần tính tiền, dùng hàm count (dùng mảng) ở phần tổng số khách (Phần thống kê bên dưới) nhưng 1 cái báo lỗi, một cái =0. Mọi người xem giúp mình với ạ. Mình cảm ơn!
(File 12.3 kb mọi người nhé)
 

File đính kèm

Lần chỉnh sửa cuối:
Mình dùng hàm match ở phần tính tiền, dùng hàm count (dùng mảng) ở phần tổng số khách (Phần thống kê bên dưới) nhưng 1 cái báo lỗi, một cái =0. Mọi người xem giúp mình với ạ. Mình cảm ơn!
(File 12.3 kb mọi người nhé)
Tính tiền:
=G3*INDEX($H$16:$K$19,MATCH(--MID(D3,2,1),$G$16:$G$19,0),MATCH(LEFT(D3,1),$H$15:$K$15,0))
Thống kê:
=COUNTIF($D$3:$D$12,D22&"*")
Thân
 
Hay thật, dấu -- có tác dụng gì vậy bạn?
Và công thức count của mình sao lại sai vậy? Bạn có thể giải thích cho mình được không?
 
Lần chỉnh sửa cuối:
Hay thật, dấu -- có tác dụng gì vậy bạn?
Dấu -- là 2 dấu "trừ", nó thay thế cho 1 toán tử, có thể hiểu là -1*-1*Mid(...) để chuyển Chuỗi (Text) sang Số (Number). Các hàm LEFT, MID, RIGHT, SUBSTITUTE, ... trả về kết quả chuỗi. Trong cột G file của bạn có thể là giá trị số, nên khi MATCH chuỗi trong dãy số thì không ra kết quả.
Bạn cũng có thể dùng một số cách khác như: 0+MID(...), VALUE(MID(...)), 1*MID(...), ... để chuyển Chuỗi về Số.
 
Còn công thức count của mình sao lại sai vậy (mặc dù mình đã để value ở trc' mid)? Bạn có thể giải thích cho mình được không?
 
Còn công thức count của mình sao lại sai vậy (mặc dù mình đã để value ở trc' mid)? Bạn có thể giải thích cho mình được không?
Bạn nói COUNT nào liên quan đến VALUE(MID(...))?
Trong file bạn gửi có công thức mảng: =COUNT(IF(LEFT($D$3:$D$12,1)=D22,$D$3:$D$12,"")), Cột D của bạn là chuỗi, mà rỗng "" cũng là chuỗi, mà COUNT chỉ đếm số, kết quả IF bạn lồng vào có 10 giá trị đều là chuỗi, vậy COUNT sẽ cho kết quả là 0, COUNTA sẽ cho kết quả là 10.
Đối với trường hợp này bạn dùng COUNTIF (như bài #2) với giá trị cần đếm đã cho là D22 kết hợp với dấu "*" đại diện cho 1 nhóm ký tự: =COUNTIF($D$3:$D$12,D22&"*")
 
Xin lỗi mình nhầm. là value trước left. Nhưng cho mình hỏi tại sao với averege nó vẫn đúng. Ví dụ từ 1 file
={AVERAGE(IF(RIGHT($E$2:$E$13)=I23,$G$2:$G$13-$F$2:$F$13,""))}
 
Lần chỉnh sửa cuối:
Xin lỗi mình nhầm. là value trước left. Cảm ơn bạn nhiều
Bạn VALUE(LEFT(ký tự)) thì cho kết quả lỗi #VALUE mà thôi, đơn giản vì chuỗi trong LEFT không phải dạng số.
Trong khi đó bạn dùng hàm đếm số (COUNT) để đi đếm chuỗi.
Còn công thức AVERAGE mảng đó lại tính trung bình của cột G -cột F với điều kiện cột E có những giá trị của I23. Bạn thử lấy một giá trị cột G - cột F xem nó ra kết quả là gì? Chắc chắn là ra số vì bạn đã dùng một phép toán trừ.
Nói tóm lại, bạn phải xem lại ý nghĩa của hàm COUNT, nó dùng để làm gì, dữ liệu đưa vào đã phù hợp hay chưa.
 
Dấu -- là 2 dấu "trừ", nó thay thế cho 1 toán tử, có thể hiểu là -1*-1*Mid(...) để chuyển Chuỗi (Text) sang Số (Number). Các hàm LEFT, MID, RIGHT, SUBSTITUTE, ... trả về kết quả chuỗi. Trong cột G file của bạn có thể là giá trị số, nên khi MATCH chuỗi trong dãy số thì không ra kết quả.
Bạn cũng có thể dùng một số cách khác như: 0+MID(...), VALUE(MID(...)), 1*MID(...), ... để chuyển Chuỗi về Số.
Theo phân tích của LEO..thì mình thử thay hai dấu trừ bằng ++, cơ mà ko được, hì ???
 
Theo phân tích của LEO..thì mình thử thay hai dấu trừ bằng ++, cơ mà ko được, hì ???
Dấu cộng xem như là "hiển nhiên" rồi, +1 cũng là 1, nhưng -1 thì nó là -1. Các con số dương trong cuộc sống hằng ngày mình thấy có mang 1 dấu + trước nó đâu (hiếm gặp).
 
Dấu cộng xem như là "hiển nhiên" rồi, +1 cũng là 1, nhưng -1 thì nó là -1. Các con số dương trong cuộc sống hằng ngày mình thấy có mang 1 dấu + trước nó đâu (hiếm gặp).
Hơi TRÌU TƯỢNG... nhưng vẫn hiểu hiểu phần nào... cảm ơn bạn..
 
Mình có làm lại bài này bằng hàm mảng SUM(IF()). Bạn tham khảo file đính kèm nhé.
 

File đính kèm

Bài viết mới nhất

Back
Top Bottom