Không biết có phải bạn làm với 2 điều kiện? ĐK là theo ngày tháng và ĐK là theo Khách, nếu vậy thì dùng hàm SUMPRODUCT là an tâm, bạn xem file nhé!
Cách đơn giản nhất là bạn dùng Pivot Table để thống kế theo số khách và số ngày, sau đó dùng hàm Count để đếm số khách xuất hiện bao nhiêu lần
Bác gần hiểu ý em.
Ý em là em muốn có 1 công thức nào đó để có thể có được kết quả như yêu cầu.
Vì dữ liệu còn rất rất dài. Nếu đếm như vậy thì cần phải lập thêm 365 cột để đếm mất.
Vấn đề chính là em muốn có công thức đếm được số lần xuất hiện (ĐIỂM DANH) của 1 khách nào đó trong suốt cả đời của khách này (Lưu ý là mỗi ngày nếu có tham gia thì tính là 1 lần thôi), cái khó là có thể một ngày khách tham gia (nhập cuộc) nhiều lần nhưng làm thể nào để tính cũng chỉ là 1 lần.
Nếu dùng Pivot thì dễ nhưng em muốn làm bằng công thức để đơn giản khi viết Macro sau này.
Tạo cột phụ A nha bạn.
Tại A8:
Kéo xuốngMã:=IF(COUNTIF($A$7:A7,B8&C8),"",B8&C8)
Tại G20:
Kéo xuốngMã:=COUNTIF($A$8:$A$15,"*"&F20)
Tôi chưa nghĩ ra cách nào để tính cho bạn, kể cả dùng PivotTable cũng chẳng đếm được như vậy. Có thể bạn đưa lên một cơ sở dữ liệu có cấu trúc thật, mới có hướng giải quyết tốt hơn.
Kiểu đếm này như kiểu điểm danh ý ạ. Em cũng nghĩ nát cả óc.
Cơ sở dữ liệu có cấu trúc thật thì cũng chỉ như thế này thôi ạ. Em định làm 1 chương trình đơn giản nhưng lại vướng đúng chỗ này nên chưa làm tiếp được. Chương trình của em cũng chỉ mới bắt đầu với file trên thôi ạ nhưng đang vướng.
Các bác cố giúp em với!![]()
Tạo cột phụ A nha bạn.
Tại A8:
Kéo xuốngMã:=IF(COUNTIF($A$7:A7,B8&C8),"",B8&C8)
Tại G20:
Kéo xuốngMã:=COUNTIF($A$8:$A$15,"*"&F20)
=SUMPRODUCT(($C$8:$C$15<>$C$9:$C$16)*($C$8:$C$15=F20))
Mình rất kỵ làm cột phụ, chỉ làm khi chẳng đặng đừng.
Vừa nghĩ ra một cách không dùng cột phụ.
Theo chuẩn của bảng dữ liệu của bạn, mình thấy sắp xếp theo thứ tự ngày tăng dần, khách hàng sort tăng dần trong ngày.
Nếu đúng thế:
Mã:=SUMPRODUCT(($C$8:$C$15<>$C$9:$C$16)*($C$8:$C$15=F20))
Thử sửa cell B15 thành 1/2 xem thế nào? Lý ra kết quả Khách 2 phải = 1 mới đúngMình rất kỵ làm cột phụ, chỉ làm khi chẳng đặng đừng.
Vừa nghĩ ra một cách không dùng cột phụ.
Theo chuẩn của bảng dữ liệu của bạn, mình thấy sắp xếp theo thứ tự ngày tăng dần, khách hàng sort tăng dần trong ngày.
Nếu đúng thế:
Mã:=SUMPRODUCT(($C$8:$C$15<>$C$9:$C$16)*($C$8:$C$15=F20))
=COUNT(1/FREQUENCY(IF($C$8:$C$15=F20,MATCH($B$8:$B$15,$B$8:$B$15,0)),IF($C$8:$C$15=F20,MATCH($B$8:$B$15,$B$8:$B$15,0))))
Oh year!
Cái này hay hơn. Tuy nhiên, khách hàng em để tượng trưng, sau này thay vào bằng tên hoặc mã khách.
Em vừa thay thử tên khách bằng A, B thì thấy kết quả ko chính xác.
Bác thật thông minh.
Thử sửa cell B15 thành 1/2 xem thế nào? Lý ra kết quả Khách 2 phải = 1 mới đúng
Đây là bài toán đếm duy nhất có điều kiện, phải dùng FREQUENCY mới giải quyết được
Lưu ý:PHP:=COUNT(1/FREQUENCY(IF($C$8:$C$15=F20,MATCH($B$8:$B$15,$B$8:$B$15,0)),IF($C$8:$C$15=F20,MATCH($B$8:$B$15,$B$8:$B$15,0))))
- Nếu cột Ngày có cell rổng thì phải sửa công thức lại 1 chút (thêm điều kiện <> "")
- Nếu cột Ngày đúng là ngày tháng thật sự (không phải Text) thì khỏi phải dùng MATCH (gọn hơn)
Bạn nói gần như, nghĩa là còn gì đó trục trặc? Thử nói xem nàoBài toán gần như đã được giải triệt để. Cảm ơn sự nhiệt tình của tất cả các bác.
Thật là tốt quá.
Bạn nói gần như, nghĩa là còn gì đó trục trặc? Thử nói xem nào