COUNTIF và MẢNG (1 người xem)

  • Thread starter Thread starter songlon
  • Ngày gửi Ngày gửi

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

songlon

Thành viên mới
Tham gia
13/7/06
Bài viết
24
Được thích
137
Khai báo mảng theo phần tử đơn lẻ: Ta khai báo mỗi giá trị trên từng ô một và kết thúc bằng Ctr+Shf+Enter.

Khai báo mảng theo kiểu tập hợp: Cách thông thường giống như tạo List vậy. Dọc thì dùng dấu chấm phẩy “;”; Ngang thì dùng dấu phẩy “,”

Xem mảng trả về, chọn ô chứa công thức sau đó nhấn F2, rồi F9.
Ghi mảng trả về ra dãy ô, chọn vùng bằng số phần tử có trong mảng, nhấn F2 và Ctr+Shf+Enter

Hàm COUNTIF(array_sub, array_main)
Array_sub: mảng chứa các phần tử đơn lẻ không trùng lặp về giá trị.
Array_main: mảng tập hợp các phần tử, có thể bao hàm cả mảng sub. Mảng này có phần tử trùng lặp.

Ví dụ: Array_Sub = {A,B,C} ; Array_Main={C,A,B,X,B,A,U,Y,X,A,C}
COUNTIF({A,B,C},{C,A,B,X,B,A,U,Y,X,A,C} --> {1,1,1,0,1,1,0,0,0,1,1}
Ý nghĩa: Số “1” cho biết phần tử ở vị trí tương ứng trên mảng Array_Main có mặt trong mảng Array_Sub.
Nếu mảng Array_Sub có giá trị lặp lại thì mảng kết quả sẽ khác 1. Số “0” là mảng Array_Sub không có giá trị này: X,U,Y,X.

Một ví dụ nhỏ kèm theo. Đụng đến mảng - nói ra thật là đau lòng - NẢN.
 

File đính kèm



Hàm COUNTIF(array_sub, array_main)
array_sub: mảng chứa các phần tử đơn lẻ không trùng lặp về giá trị.
Array_main: mảng tập hợp các phần tử, có thể bao hàm cả mảng sub. Mảng này có phần tử trùng lặp.

Ví dụ: Array_Sub = {A,B,C} ; Array_Main={C,A,B,X,B,A,U,Y,X,A,C}
COUNTIF({A,B,C},{C,A,B,X,B,A,U,Y,X,A,C} --> {1,1,1,0,1,1,0,0,0,1,1}
Ý nghĩa: Số “1” cho biết phần tử ở vị trí tương ứng trên mảng Array_Main có mặt trong mảng Array_Sub.
Nếu mảng Array_Sub có giá trị lặp lại thì mảng kết quả sẽ khác 1. Số “0” là mảng Array_Sub không có giá trị này: X,U,Y,X.

Một ví dụ nhỏ kèm theo. Đụng đến mảng - nói ra thật là đau lòng - NẢN.
Làm gì có hàm COUNTIF nào mà tham số đầu là array chứ! Nên nhớ tham số này luôn là range
-----------
Cuối cùng: Chưa hiểu bài này muốn nói cái gì? Là đóng góp kinh nghiệm hay hỏi bài đây ta?
 
CountIf(mảng, mảng), tác giả cho thí dụ ở vùng P12:P17
=COUNTIF(J12:J14;L12:L17)

Bản chất của công thức này cũng là countIf từng giá trị đơn. Muốn có kết quả tổng, phải thêm hàm Sum vào nữa:

=SUM(COUNTIF(J12:J14;L12:L17))

(Dĩ nhiên là Ctrl Sh Enter)
 
Cám ơn hai cao hảo thủ ghé thăm và góp ý.
 
Dùng CountIF, MatchIndex để tạo một danh sách rút gọn (DS_RutGon) từ danh sách ban đầu (DS_BanDau) gồm nhiều dòng trùng lặp.

Nhiệm vụ COUNTIF là trả về mảng để hàm MATCH xác định vị trí số “0” đầu tiên và anh Index sẽ điền giá trị từ danh sách ban đầu vào.
Số “0” đầu tiên mà hàm Match trả về sẽ là thứ tự dòng trong DS_BanDau.

Dòng đầu tiên của danh sách ban đầu là “Năm Cam” sẽ được lấy chắc chắn vào vùng danh sách rút gọn vì trước đó không có ai trong danh sách cả. Khi đó sẽ dùng vùng tiêu đề - ô tiêu đề cột - để làm vùng đem rà COUNTIF với toàn bộ danh sách ban đầu có tên là LIST (List – tên vùng định nghĩa của danh sách ban đầu); cuối cùng mảng trả về là toàn số 0 {0;0;0…0}. Match lấy số không “0” đầu tiên tương ứng với vị trí số 1.
Index(List,1,0) cho ra chú “Năm Cam”.

Copy công thức xuống các ô còn lại. Tương tự anh Cu Đỏ, công thức tại các dòng sau có vùng được đem đi COUNTIF với List sẽ lùi lại 1 ô… Làm hết sẽ có một danh sách rút gọn với một mớ #N/A chưa rút gọn.

INDEX và MATCH là một cặp Bác Bill cho lâu nay, giờ có anh COUNTIF nhảy vào cũng hay ho phải không các bạn!
 

File đính kèm

Dùng CountIF, MatchIndex để tạo một danh sách rút gọn (DS_RutGon) từ danh sách ban đầu (DS_BanDau) gồm nhiều dòng trùng lặp.
Bài này người ta đã làm từ đời nào trên diễn đàn rồi bạn à!
Mà nè! Làm xong phải bẫy lỗi chứ... Chẳng hạn lỗi N/A và lỗi khi dữ liệu có cell rỗng
 
Hi các chiến hữu! SOS SOS SOS
Mình đang dùng hàm Countif nhưng sau khi cài đặt lại máy thì mình vào lại bảng tính với lệnh Countif, thì các giá trị trong bảng tính của hàm Countif trả về giá trị = 0 (Việc trả về giá trị 0 là khi mình chỉ cần đưa con trỏ vào và enter là về giá trị 0 liền. Ko biết các chiến hữu có hiểu ý mình hỏi ko?
Nghĩa là trước đây (chưa cài lại máy tính) thì ok, nhưng sau khi cài đặt thì vào lại bảng tính mình thấy hàm Countif ko đếm các giá trị có chữ số, nếu có chữ số sẽ trả về kết quả = 0
 
Lần chỉnh sửa cuối:
Thông thường, Countif có công thức là Countif (Range, Criteria)
Hôm qua, mình xem một bài trong GPE có sử dụng đến countif với Criteria là mảng, không hiểu lắm, nên tìm hiểu thêm thì tìm được đến Post này, đọc vẫn thấy khó hiểu, nhờ mọi người giải thích giúp đoạn này ạ!

COUNTIF({A,B,C},{C,A,B,X,B,A,U,Y,X,A,C} --> {1,1,1,0,1,1,0,0,0,1,1}

Excel tính toán trả về kết quả mảng trên như thế nào! Mình thấy anh ptm0412 có giải thích "
Bản chất của công thức này cũng là countIf từng giá trị đơn"! Xin giải thích rõ hơn là count thế nào mà ra kết quả như trên ạ?
 

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

Back
Top Bottom