Thay thế hàm RANK???

Liên hệ QC

thanhtam348

Thành viên thường trực
Tham gia
9/3/07
Bài viết
288
Được thích
62
Vì hàm RANK không làm được như mong muốn của tôi, mời các bạn xem qua file để có cách nào giúp đở tôi không!
 

File đính kèm

Lần chỉnh sửa cuối:
thanhtam348 đã viết:
Vì hàm RANK không làm được như mong muốn của tôi, mời các bạn xem qua file để có cách nào giúp đở tôi không!
Có thể cụ thể hơn không, chưa hiểu ý.
30, 30, 29 => hạng 1,1,3 (hàm rank) bạn muốn là sao?
 
Nghĩa là xếp theo lớn nhất 30 => 30 trong hàm rank cùng là hạng 1 (chấp nhận), nhưng 29 (chỉ nhỏ hơn 1 hoặc không tới 1) muốn là hạng 2 nhưng không được vậy!
 
Ý của thanhtam348 có phải là 30 --> đồng hạng 1; 29 là hạng 2 ???
 
Tạm dùng file này, có dùng cột phụ. Chưa nghĩ ra cách khác.
 

File đính kèm

Nếu học sinh C diểm là 28 thì cũng hạng 2 (hay là hạng 3??? vì diều kiện đưa ra của bạn là <=1 so với điểm kế trên của nó).
nếu 28 điểm hạng 2 thì bạn dùng công thức mảng sau :
=SUM(1/(IF($F$8:$F$17>F8,COUNTIF($F$8:$F$17,$F$8:$F$17),9.999999999E+307)))+1

công thức mảng là bạn nhập bình thường, rồi khi xong thì nhấn đồng thời 3 phím Ctr+Shift+Enter.

còn nếu 28 điểm hạng 3 thì .... chưa biết (khó quá). :d
 
Cám ơn, nhưng 2 bạn chỉ giúp được tôi một phần theo ý, đúng theo thực tế thì tên "C" điểm 29 sẽ là hạng 2, nhưng nếu thay vào điểm 28 nó cũng vẩn hạng 2, trong khi chỉ muốn kết quả từ 1 đến nhỏ hơn 1 so với hạng nhất thôi ngoài ra nó sẽ lọt vào hạng khác thấp hơn.
 
chỉ so với hạng nhất thôi hả bạn? hay cứ <=1 thì mới được xếp liền hạng với người kế trên?

Nếu chỉ so với hạng nhất thôi, thì bạn thêm một cái if nữa là xong (>=max-1), còn lại thì rank bình thường.
 
Chỉnh sửa lần cuối bởi điều hành viên:
thanhtam348 đã viết:
Cám ơn, nhưng 2 bạn chỉ giúp được tôi một phần theo ý, đúng theo thực tế thì tên "C" điểm 29 sẽ là hạng 2, nhưng nếu thay vào điểm 28 nó cũng vẩn hạng 2, trong khi chỉ muốn kết quả từ 1 đến nhỏ hơn 1 so với hạng nhất thôi ngoài ra nó sẽ lọt vào hạng khác thấp hơn.

Nếu dùng Cột phụ hoặc dùng VBA thì được, chứ công thức sẽ không được bạn ạ.

Thân!
 
Mr Okebab đã viết:
Nếu dùng Cột phụ hoặc dùng VBA thì được, chứ công thức sẽ không được bạn ạ.

Thân!
...Bằng cách nào cũng được bạn à. Vậy nếu được bạn có thể cho tôi xin một file vi dụ đi !
SoiBien đã viết:
Nếu chỉ so với hạng nhất thôi, thì bạn thêm một cái if nữa là xong (>=max-1), còn lại thì rank bình thường.
Thêm (>=max-1), như thế nào vậy bạn, chi tiết hơn dùm mình đi !
 
Lần chỉnh sửa cuối:
thanhtam348 đã viết:
...Bằng cách nào cũng được bạn à. Vậy nếu được bạn có thể cho tôi xin một file vi dụ đi !

Thêm (>=max-1), như thế nào vậy bạn, chi tiết hơn dùm mình đi !

Đây là VD về dùng cột phụ. Bạn xem qua nhé.

Thân!
 

File đính kèm

thì như thế này bạn ơi :
=IF(AND(F8<MAX(F8:F17),F8>=MAX($F$8:$F$17)-1),2,RANK(F8,$F$8:$F$17))
 
SoiBien đã viết:
thì như thế này bạn ơi :
=IF(AND(F8<MAX(F8:F17),F8>=MAX($F$8:$F$17)-1),2,RANK(F8,$F$8:$F$17))
Bác Soibien cho tôi hỏi trong công thức trên ở đoạn =Max($F$8:$F$17)-1),"-1" ở đây thể hiện cái gì vậy?
 
Qua các bạn tôi được việc rồi. Cám ơn các bạn nhiều!
 
Đây quả là một đề tài khá hay, lúc đầu nghĩ rất dễ, sau làm mãi đến giờ . . . vẫn chưa ra !!!!!!!!!!???????????+-+-+-+:=\++-+-+-+:=\+
Cái này chắc là dùng hàm mảng, chứ công thức thường có lẽ rằng phải dùng cột phụ thôi.
Còn dùng VBA lại là một vấn đề khác.--=----=----=--

Thân!
 
thong_xanh2003 đã viết:
Bác Soibien cho tôi hỏi trong công thức trên ở đoạn =Max($F$8:$F$17)-1),"-1" ở đây thể hiện cái gì vậy?
-1 là dùng để phù hợp với điều kiện của bạn đưa ra (các ô nào có giá trị cách biệt so với ô lớn nhất không quá 1 (max là 30 thì phải lấy 29 để so sánh chứ).

Thân.
 
To Thongxanh
=IF(AND(F8<MAX(F8:F17),F8>=MAX($F$8:$F$17)-1),2,RANK(F8,$F$8:$F$17))
if F8> 10 (MAX(F8:F17)) và F8<=9 (MAX(F8:F17)-1) tứ là khỏang 9.0, 9.1, 9.2 ->9.9 <10
To ThanhTam
Nếu bạn làm xong thì up file để anh em nghiên cứu.
 
ThuNghi đã viết:
To ThanhTam
Nếu bạn làm xong thì up file để anh em nghiên cứu.
...Tôi xin lổi, nếu nói có làm bạn bè không vui.
Thật ra nếu để xếp hạng thì trong số 10 người - tức phải có hạng 10 (như hàm RANK).
VD như trong số 10 người tôi có 2 số điểm 30: thì từ 30=>30 là hạng 1 (bởi 2 số trùng nhau), nếu có 2 người điểm 29,5: thì từ 29,5=>29,5 là hạng 2 , như vậy nếu có người điểm 29 sẽ bị lọt vào hạng 5 vì họ đứng hàng thứ 5 so với những người trên, nếu không có người mang điểm 29,5 thì người mang điểm 29 mới vào hạng 2 (ý tôi muốn chỉ chênh lệt từ 1 đến nhỏ hơn 1 là vậy), còn như không có người mang điểm 29,5 và 29 mà chỉ có 28 thôi thì sẽ lọt vào hạng 3 (vì đã nhiều hơn 1 và dưới 2 người mang điểm 30), và các người còn lại vẩn RANK bình thường...
Bởi tôi không lý giải được rỏ ràng và nhu cầu là chỉ cần lọc có 2 hạng nên cách của các bạn tôi vẩn dùng được mà không muốn các bạn phải nhọc nhằn thêm (Đã qua trang 2 rồi còn gì)....còn nếu như các bạn mình còn cách thì cũng nên cho xin.
Thân mến.
 
Lần chỉnh sửa cuối:
Cái này dễ lắm... bạn làm 1 file, trong đó bạn ghi ra tất cả những số điễm có thể có... cột cạnh bên bạn cho 1 hàm RANK, cột kế bên nữa bạn ghi lại việc sắp xếp thứ hạng theo ý của bạn... như vậy người ta sẽ nhìn vào cột có hàm RANK và so sánh với cột mà bạn tự sắp bằng tay, sẽ đoán ra ngay ý đồ của bạn...
Làm xong post file lên... nhớ nêu càng chi tiết số điểm càng tốt, chẳng hạn như 30, 29.5, 29, 28... vân vân.. những điểm như thế sẽ xếp hạng mấy
ANH TUẤN
 
Web KT

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

Back
Top Bottom