Các câu hỏi về hàm COUNTIF

Liên hệ QC
Dùng hàm Find mà dữ liệu nhiều cũng chậm lắm đó bác à! Vì hàm Find chạy theo quy tắc hàng trước, dọc sau, quét từ trái sang phải - từ trên xuống dưới. Nên 20,000 dòng thì bác có thể đếm được bao nhiêu ô dữ liệu rồi đúng không?
Thân.
Hic, mình chỉ FIND trong Range([a10],[a65535].End(xlUp)) = 1 đoạn trong cột thôi, sao lại để nó quét dọc, quét ngang
 
Dùng hàm Find mà dữ liệu nhiều cũng chậm lắm đó bác à! Vì hàm Find chạy theo quy tắc hàng trước, dọc sau, quét từ trái sang phải - từ trên xuống dưới. Nên 20,000 dòng thì bác có thể đếm được bao nhiêu ô dữ liệu rồi đúng không?
Thân.

Đúng như Boyxin nói, và hơn nữa nó chỉ tìm 2 giá trị OldValue và NewValue thì nhanh hơn, hơn nữa nó chỉ xét từ Cell vừa thay đổi xuống Cell cuối cùng (Những Cell bên trên không thay đổi vì vậy không cần xem xét). Còn nếu dùng For thì phải xét từng hàng.

Hoặc có thể SET AutoFilter cho vùng từ ChangeCell đến Cell cuối cùng với điều kiện Filter là OldValue và NewValue.

--Chúc vui--
 
Nếu hỏi Đếm thế nào thì dùng FIND (như Lệnh Hồ Đại Hiệp nói) là nhanh nhất rồi
Đồng ý là NHANH nhưng chưa chắc là NHẤT đâu
Các bạn nghĩ sao nếu tôi dùng AutoFilter ? ---> Khi Target thay đổi tôi AutoFilter với Criteria = Target ---> rồi quét 1 vài cell đang Visible và COUNTIF
AutoFilter là 1 công cụ sẳn có, tôi nghĩ nó không đến nỗi tệ nhỉ
???
hơn nữa nó chỉ xét từ Cell vừa thay đổi xuống Cell cuối cùng (Những Cell bên trên không thay đổi vì vậy không cần xem xét)
Cái này hình như không đúng à nha ---> Phải xét hết tất tần tật những cell nào = Target, dù nó nằm ở đâu, dưới hay trên... COUNTIF cơ mà
 
Lần chỉnh sửa cuối:
Đồng ý là NHANH nhưng chưa chắc là NHẤT đâu
Các bạn nghĩ sao nếu tôi dùng AutoFilter ? ---> Khi Target thay đổi tôi AutoFilter với Criteria = Target ---> rồi quét 1 vài cell đang Visible và COUNTIF
AutoFilter là 1 công cụ sẳn có, tôi nghĩ nó không đến nỗi tệ nhỉ
???

Cái này hình như không đúng à nha ---> Phải xét hết tất tần tật những cell nào = Target, dù nó nằm ở đâu, dưới hay trên... COUNTIF cơ mà
Có 1 cách này không pro lắm, khi ta xét nếu ma không trùng thì lưu tất cả ma duy nhất vào 1 cell nào đó, và số TT vào cell khác đến dòng i ta chỉ xét theo Cell = hàm Instr hay len(replace(...)) đó thôi. Và số TT + 1. Nhưng mà nếu Cell đó chứa nhiều ma => len(text) quá lớn thì nó có chịu chạy không.
 
Đồng ý là NHANH nhưng chưa chắc là NHẤT đâu
Các bạn nghĩ sao nếu tôi dùng AutoFilter ? ---> Khi Target thay đổi tôi AutoFilter với Criteria = Target ---> rồi quét 1 vài cell đang Visible và COUNTIF
AutoFilter là 1 công cụ sẳn có, tôi nghĩ nó không đến nỗi tệ nhỉ
???

Cái này hình như không đúng à nha ---> Phải xét hết tất tần tật những cell nào = Target, dù nó nằm ở đâu, dưới hay trên... COUNTIF cơ mà

Khi trước đó các mã đã được đếm đúng rồi: chỉ đếm New Target thì FIND hoặc AutoFilter... + COUNTIF ... có lẽ là: nhanh và code cũng đơn giản
 
Cái này hình như không đúng à nha ---> Phải xét hết tất tần tật những cell nào = Target, dù nó nằm ở đâu, dưới hay trên... COUNTIF cơ mà

Cảm ơn Bác, vì không xem File kèm theo của chủ topic nên nhầm tưởng là đếm từ A1--> Cell hiện hành (Như vậy số đếm sẽ tăng dần), nhưng khi xem File mới thấy là đúng như bác viết.

Đồng ý là NHANH nhưng chưa chắc là NHẤT đâu
Các bạn nghĩ sao nếu tôi dùng AutoFilter ? ---> Khi Target thay đổi tôi AutoFilter với Criteria = Target ---> rồi quét 1 vài cell đang Visible và COUNTIF
AutoFilter là 1 công cụ sẳn có, tôi nghĩ nó không đến nỗi tệ nhỉ

Filter là một công cụ mạnh, tuy nhiên việc Countif lại không hẳn là tối ưu, bởi chỉ đơn giản là cộng thêm 1 đơn vị vào các ô tương ứng.
Vì vậy nếu đã Filter thì nên chăng : AutoFilter --> Quét vài Cell đang Visible -->> + 1

Định dùng Paste Special với chức năng Add Value nhưng không được. Nếu được thì nhanh hơn nhiều.

--Chúc vui--
 
Định dùng Paste Special với chức năng Add Value nhưng không được. Nếu được thì nhanh hơn nhiều.
Không biết Đại Hiệp bị vướng chổ nào trong phần này ---> Tôi thí nghiệm thấy PasteSpecial Add được mà (Paste được với cả vùng dử liệu không liên tục)
Trò này thú vị đây ---> Có điều vùng đếm phải có trước ---> Nếu chưa có thì ta vẩn phải COUNTIF để tạo kết quả ban đầu ---> Lần 2 trở đi sẽ dùng PasteSpecial Add
 
Hàm countif trong excel

Khanh có một bài đếm countif, nhưng trong dữ liệu thì có một số ký tự là "0230" và "230" thì hàm countif đếm tổng hết 2 dạng ký tự này luôn, mọi người ơi, chỉ cho K cách nào làm mà 0 bị đếm sai đi
 
Khanh có một bài đếm countif, nhưng trong dữ liệu thì có một số ký tự là "0230" và "230" thì hàm countif đếm tổng hết 2 dạng ký tự này luôn, mọi người ơi, chỉ cho K cách nào làm mà 0 bị đếm sai đi
Dùng hàm SUMPRODUCT thử xem! Gõ vào cell C2 công thức:
PHP:
=SUMPRODUCT(($A$2:$A$5531=$B2)*1)
 
Khanh có một bài đếm countif, nhưng trong dữ liệu thì có một số ký tự là "0230" và "230" thì hàm countif đếm tổng hết 2 dạng ký tự này luôn, mọi người ơi, chỉ cho K cách nào làm mà 0 bị đếm sai đi
Theo cách của bạn Máy thì nó sẽ hiểu 1 cách máy móc thôi chứ không suy nghĩ như mình bạn à.
Nếu cho nó chính xác và dể làm bạn thêm 1 ký tự nào đó đằng trước các số cho nó chuyển hoàn toàn về dạng chuổi, khỏi sợ nó "Hiểu lầm" từ 01 thành 1 ...:-=
Bạn tham khảo file nhé
Thân
 

File đính kèm

  • 56.rar
    59.5 KB · Đọc: 83
Lần chỉnh sửa cuối:
Hi all! Mình cũng muốn hỏi vấn đề liên quan đến countif, mình muốn đếm ngày( dd/mm/yy) thì có đếm được k?
 
Đếm được hết bạn à, bạn thử cho ví dụ nhé
 
K 0 thể đổi tên hay thêm ký tự vì mỗi chuỗi 0111, hay 111 là ký hiệu mã hóa cho tên một trường nên nếu thay đổi thì sẽ làm sai thông tin, vì sau đó khanh còn dùng Vlookup tìm tên trường, tính số lượng hồ sơ nữa, nhiều thứ phía sau lắm.
 
K đã làm được rồi, vậy mà cả tuần này 0 tính được, cám ơn các bạn lắm
 
Hỏi về hàm IF và COUNTIF?

Đây là 1 bài tóa về lọc dữ liệu đã được trao đổi khá lâu trên diễn đàn và có rất nhiều cách giải quyết. Đợt đó tớ có load về 1 bài giải của thành viên tớ cũng không nhớ rõ lắmđể tìm hiều nhưng có 1 số vấn đề vẫn chưa ra. Nay nhờ mọi người giúp đỡ:
Trong công thức name
VT=IF(COUNTIF(LOC!$C$1;OFFSET(DS;;5;;1));ROW(INDIRECT("1:"&ROWS(DS)));"")
Tớ có 3 vấn đề nhờ mọi người giúp:
1. Trong công thức của COUNTIF thì tớ thường thấy thamsố thứ nhất là 1 vùng dữ liệu, còn tham số thứ 2 là thường là 1 ô dữ liệu. Tớ thử hàm này 1 cách độc lập thì cho ra giá trị = 0. Vậy có đúng k?
2. Trong công thức của hàm IF sao tớ không thấy biểu thức logic?
3. Nhờ mọi người dịch nghĩa của cả hàm tên VT này.
 

File đính kèm

  • TonghopVT.xls
    39.5 KB · Đọc: 44
+Câu 1: Hàm VT này là hàm mãng bạn à, bạn nhấn Enter thì sẽ cho ra giá trị đầu thôi. Bạn thử quét hàm trên thanh Formula, rồi nhấn F9 bạn sẽ thấy kết quả ngay.

+Câu 2: Biểu thức Logic của IF vẫn vậy thôi, luôn nằm trước dấu (;) đầu tiên. Và ở đây không nói gì hết thì kết quả là TRUE.

+Câu 3: Ý nghĩa là dùng để đưa ra vị trí của dữ liệu hiện muốn tìm. Vậy thôi!
<Nếu có gì sai sót thì nhờ mọi người bổ sung thêm hen!>
Thân.
 
Cảm ơn bạn nhiều. Quả thật kiến thức thật rộng lớn. Bạn có thể chỉ ra cách để nhận biết hàm là hàm mảng hay hàm thông thường hay dùng luôn cách mà bạn vừa chỉ là nhấn F9?
 
Cảm ơn bạn nhiều. Quả thật kiến thức thật rộng lớn. Bạn có thể chỉ ra cách để nhận biết hàm là hàm mảng hay hàm thông thường hay dùng luôn cách mà bạn vừa chỉ là nhấn F9?
Cũng khó nói à nha!
- Với 1 công thức nào đó mà bạn phải Ctrl + Shift + Enter nó mới ra kết quả thì ăn chắc đó là công thức mãng
- Một vài hàm mà bản thân nó đã là mãng rồi (như hàm ROW, COLUMN và 1 vài hàm khác) thì không cần bấm Ctrl + Shift + Enter nó vẫn cho kết quả ---> Vì vậy, với 1 công thức mà ta chỉ cần Enter nó đã ra kết quả thì cũng chưa chắc nó không phải là công thức mãng
- Kết quả của 1 công thức mãng là tập hợp của nhiều phần tử ---> Có thể bôi đen công thức trên thanh Formula rồi bấm F9 để kiểm chứng... Nếu thấy có nhiều giá trị trong đó thì ăn chắc đó là công thức mãng ... (điều ngược lại không chắc là đúng)
vân vân.. và.. vân vân...
Đây là định nghĩa về mãng:
About array formulas and array constants
About array formulas and array constants

An array formula can perform multiple calculations and then return either a single result or multiple results. Array formulas act on two or more sets of values known as array arguments. Each array argument must have the same number of rows and columns. You create array formulas in the same way that you create other formulas, except you press CTRL+SHIFT+ENTER to enter the formula.
Array constants can be used in place of references when you don't want to enter each constant value in a separate cell on the worksheet.
Some of the built-in functions are array formulas, and must be entered as arrays to get the correct results.
Bạn hãy tham khảo topic này xem sao:
http://www.giaiphapexcel.com/forum/showthread.php?t=7917
 
Cảm ơn bác. Nhưng bác cho định nghĩa của Array bằng tiếng anh thế thì khó cho em quá. Nhưng qua tìm hiểu sơ bộ của em, thì em hiều hàm mảng như thế này có được k nhé: Hàm nào mà cho kết quả là 1 vùng dữ liệu tập hợp nhiều phần tử thì đó là hàm mảng?
 
Cảm ơn bác. Nhưng bác cho định nghĩa của Array bằng tiếng anh thế thì khó cho em quá. Nhưng qua tìm hiểu sơ bộ của em, thì em hiều hàm mảng như thế này có được k nhé: Hàm nào mà cho kết quả là 1 vùng dữ liệu tập hợp nhiều phần tử thì đó là hàm mảng?
Mình cũng "điếc" về hàm mảng, nhưng cũng tạm hiểu hàm mảng không cho kết quả là một vùng..., mà hàm mảng cho ra một kết quả được tính toán dựa trên dữ liệu của một hay nhiều mảng - một hay nhiều vùng dữ liệu.
 
Web KT
Back
Top Bottom