Cách dùng hàm RANK để thứ hạng được chạy liên tục, không mất số nào?

Liên hệ QC

ptlong04x1

Thành viên tích cực
Tham gia
15/10/08
Bài viết
1,031
Được thích
1,531
Nghề nghiệp
Kỹ sư xây dựng
Mình làm thử 1 bài về hàm RANK nhưng thứ hạng không chạy liên tục mà bị mất 1 số vị trí, các bạn xem giúp công thức của mình sai chỗ nào nha.Cảm ơn.
 

File đính kèm

  • Book1.xls
    18.5 KB · Đọc: 912
Lần chỉnh sửa cuối:
Hi, Sao công thức của bạn lại dài thế. Nếu dùng hàm Rank sao không dùng luôn thế này:
=RANK(E4,D$4:D$10,1).
Hàm rank có thể sắp xếp từ nhỏ tới lớn và ngược lại mà.
Còn điều mà bạn hỏi thì theo mình là do hạng thứ 2 đã có hai số rồi thì không thể có số thứ ba được nữa. Giống như trong các môn thể thao vậy, nếu đồng giải ba rồi thì tất nhiên không thể có giải tư.
 
Mình đọc trên diễn đàn thấy có đoạn này mà không biết sao mình làm theo không được.

* RANK() sắp xếp các số giống nhau với cùng một thứ hạng. Tuy nhiên, sự có mặt của những số giống nhau sẽ làm ảnh hưởng đến hạng của các số theo sau. Ví dụ, trong danh sách các số nguyên, nếu số 10 có hai lần và được xếp hạng 7, thì số 11 sẽ xếp hạng 9 (không có hạng 8).
* Muốn RANK() sắp xếp các số giống nhau với nhưng không cùng một thứ hạng (thứ hạng sẽ chạy liên tục không mất số nào), dùng cú pháp sau đây (kết hợp hàm RANK với hàm COUNT và COUNTIF):
- Với danh sách xếp từ lớn đến nhỏ:
= RANK(number, ref) + COUNTIF(ref, number) - 1
-Với danh sách xếp từ nhỏ đến lớn:
= COUNT(ref) - (RANK(number, ref) + COUNTIF(ref, number)) + 2
 
Bạn thử sửa lại công thức như sau:
= COUNT(D$4:D$10) - (RANK(D4, D$4:D$10,0) + COUNTIF(D4:D$10, D4)) + 2

Chú ý đoạn mình bôi đỏ nhé, lúc đầu là D$4 và chuyển thành D4 thì công thức mới đúng được. Làm như vậy thì hàm Countif mới có giá trị khác nhau còn nếu cố định lại thì sẽ giống nhau cả rùi.
 
Bạn thử sửa lại công thức như sau:
= COUNT(D$4:D$10) - (RANK(D4, D$4:D$10,0) + COUNTIF(D4:D$10, D4)) + 2

Chú ý đoạn mình bôi đỏ nhé, lúc đầu là D$4 và chuyển thành D4 thì công thức mới đúng được. Làm như vậy thì hàm Countif mới có giá trị khác nhau còn nếu cố định lại thì sẽ giống nhau cả rùi.
Các bạn kèm COUNTIF trong này là sai toàn bộ!---> 2 người cùng điểm 2 mà 1 người hạng 2, 1 người hạng 3 ---> Nếu bạn là 1 trong những học sinh bị vô cớ tụt hạng thế các bạn có khiếu nại không? (e rằng phải ra hội đồng nhà trường để giải quyết tranh chấp)
Hảy theo đường link tôi đưa ở trên, bảo đảm ăn chắc
 

File đính kèm

  • Book1.xls
    17 KB · Đọc: 1,042
Lần chỉnh sửa cuối:
Mình đang có một file excel cần xếp hạng, mình đã đặt tên và sử dụng công thức mảng nhưng giờ bị báo lỗi #REF!, các bạn có thể chỉ mình cách attach file để đưa lên diễn đàn không ? Mình rất muốn đưa file lên diễn đàn nhờ các bạn sửa lỗi #REF! giùm minh . Mình cám ơn các bạn.
 
Các bạn kèm COUNTIF trong này là sai toàn bộ!---> 2 người cùng điểm 2 mà 1 người hạng 2, 1 người hạng 3 ---> Nếu bạn là 1 trong những học sinh bị vô cớ tụt hạng thế các bạn có khiếu nại không? (e rằng phải ra hội đồng nhà trường để giải quyết tranh chấp)
Hảy theo đường link tôi đưa ở trên, bảo đảm ăn chắc
Hoặc có thể dùng Sumproduct()
Giả sử xếp hạng cho vùng A1:A10.
Mã:
=SUMPRODUCT(--($A$1:$A$10<A1),1/COUNTIF($A$1:$A$10,$A$1:$A$10))+1
Nếu xếp từ lớn đến nhỏ thì thay dấu "<" bằng dấu ">".
 
Em đã sử dụng hàm SUMPRODUCT rồi nhưng khi đọc công thức xếp thứ hạng này em thấy rất khó hiểu. Mong các bác có thể phân tích giúp em từng phần để em có thể hiểu hơn và áp dụng vào các bài toán khác tốt hơn không ạ?
như là:
--($A$1:$A$10<A1) là thế nào?
1/countif($A$1:$A$10,A$1:$A$10) là thế nào?
 
Lần chỉnh sửa cuối:
Em đã sử dụng hàm SUMPRODUCT rồi nhưng khi đọc công thức xếp thứ hạng này em thấy rất khó hiểu. Mong các bác có thể phân tích giúp em từng phần để em có thể hiểu hơn và áp dụng vào các bài toán khác tốt hơn không ạ?
như là:
--($A$1:$A$10<A1) là thế nào?
Là lấy điều kiện các giá trị trong mảng từ A1, A2, A3,..đến A10 nhỏ hơn giá trị A1

1/countif($A$1:$A$10,A$1:$A$10) là thế nào?

loại ra các phần tử bị trùng trong danh sách A$1:$A$10 chỉ giữ lại một phần tử (đếm vùng A$1:$A$10 có mấy giá trị khác nhau)
 
Tôi có người chụ nhờ xếp hạng dùm cho lớp mầm non. Nhưng khổ nỗi tôi đã dùng hàm rank và xếp rất chính xác nhưng chị nói không đúng. Vì: nếu hai bé đồng hạng thì bé nào nghỉ nhiều sẽ được xếp sau (hạng lớn hơn) bé nghỉ ít. Làm sao đây, xin các bạn am tường về excel chỉ giúp, tôi rất cám ơn!
 
Nếu đang xếp hạng theo điểm, bạn hãy xếp hạng theo {điểm - ngày nghỉ/1000}
 
Lần chỉnh sửa cuối:
Mình đang có một file excel cần xếp hạng, mình đã đặt tên và sử dụng công thức mảng nhưng giờ bị báo lỗi #REF!, các bạn có thể chỉ mình cách attach file để đưa lên diễn đàn không ? Mình rất muốn đưa file lên diễn đàn nhờ các bạn sửa lỗi #REF! giùm minh . Mình cám ơn các bạn.

Theo tôi biết, do xóa một số hàng hay cột, ví dụ ô A5 = a1 + a2, xóa đi hàng đầu thì ô A4 có công thức là = #REF + A1

Lỗi này thường không khác phục được nếu không nhận biết ngay để Undo
 
Nếu đang xếp hạng theo điểm, bạn hãy xếp hạng theo {điểm + ngày nghỉ/1000}

Anh giúp em công thức xếp hạng có điều kiện với, cụ thể như sau: em có cột tổng điểm là chính (điểm từ 10 trở xuống), cột phụ là cột thời gian. nếu xếp theo tổng điểm thì dùng hàm rank được nhưng nếu 4, 5 người có cùng điểm nhưng khác thời gian thì em không biết làm thế nào. điểm cao nhất phải kèm điều kiện thời gian nhỏ nhất thì xếp hạng 1, 2 ,3,.....
 
Anh giúp em công thức xếp hạng có điều kiện với, cụ thể như sau: em có cột tổng điểm là chính (điểm từ 10 trở xuống), cột phụ là cột thời gian. nếu xếp theo tổng điểm thì dùng hàm rank được nhưng nếu 4, 5 người có cùng điểm nhưng khác thời gian thì em không biết làm thế nào. điểm cao nhất phải kèm điều kiện thời gian nhỏ nhất thì xếp hạng 1, 2 ,3,.....

Công thức bài trên tôi nhầm, lẽ ra là: xếp hạng theo {điểm - ngày nghỉ/1000}
Vậy với thời gian cũng làm như vậy: xếp hạng theo {điểm - thời gian/1000}
 
Web KT
Back
Top Bottom