Vấn đề về hàm xếp hạng, cần cao thủ kết hợp hàm :( (1 người xem)

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

uhonbongtoi

Thành viên mới
Tham gia
31/7/11
Bài viết
17
Được thích
0
Lời đầu xin được chúc các anh chị buổi tối cuối tuần vui vẻ :)
Trong file e gửi được hiểu thế này:
- Sheet 1 ở cột dọc có 3 Line, E muốn xếp hạng 3 Line này theo chỉ số ở cột " Tỉ Lệ"
VD: Line 1 được 103%=> 1
Line 2 được 103%=> 1
Line 3 được 91% => 2

Chỉ số này được hiển thị vào các cột "ngày" tương ứng trong Sheet 2.
Trong file e gửi là e điền số vào trong Sheet 2 thôi, giờ e muốn có công thức tính giúp e vấn đề đấy. Ngồi nghĩ rụng cả tóc mà không ra. Anh chị chỉ giúp e với nhé. Thanks All
 

File đính kèm

Chào bạn uhonbongtoi
Để giải quyết tình huống của bạn tôi sử dụng hàm RANK để xếp hạng và hàm TRANSPOSE để chuyển giá trị từ cột thành hàng như yêu cầu của bạn(nếu bạn chưa biết cách sử dụng 2 hàm này thì bạn đọc help nhé)

Có một chút khó khăn khi dùng hàm rank là giá trị của dãy tham chiếu phải liên tiếp nên tôi sắp sếp cho 3 giá trị tỉ lệ của 3 line liên tiếp nhau

Bạn xem attached file là có thể hiểu ngay cách tôi thực hiện
 

File đính kèm

Chào bạn uhonbongtoi
Để giải quyết tình huống của bạn tôi sử dụng hàm RANK để xếp hạng và hàm TRANSPOSE để chuyển giá trị từ cột thành hàng như yêu cầu của bạn(nếu bạn chưa biết cách sử dụng 2 hàm này thì bạn đọc help nhé)

Có một chút khó khăn khi dùng hàm rank là giá trị của dãy tham chiếu phải liên tiếp nên tôi sắp sếp cho 3 giá trị tỉ lệ của 3 line liên tiếp nhau

Bạn xem attached file là có thể hiểu ngay cách tôi thực hiện

Cảm ơn anh Lovetobeloved, Em đã hiểu cách làm của anh. Tiện đây anh cho e hỏi thêm: Tại sao hàm Rank hay trả về các giá trị không theo số thứ tự (1,2,3,4...) mà các giá trị trả về hay bị nhảy số (1,4,7...). Có cách nào để hàm rank trả về theo các số thứ tự mà k bị nhảy số không anh?
 
Cảm ơn anh Lovetobeloved, Em đã hiểu cách làm của anh. Tiện đây anh cho e hỏi thêm: Tại sao hàm Rank hay trả về các giá trị không theo số thứ tự (1,2,3,4...) mà các giá trị trả về hay bị nhảy số (1,4,7...). Có cách nào để hàm rank trả về theo các số thứ tự mà k bị nhảy số không anh?

Sửa hàm công thức bên sheet1 chỗ R4 thành:

=RANK(O4,$O4:$Q4)+COUNTIF($O4:O4,O4)-1

Kéo ngang kéo xuống
 
Sửa hàm công thức bên sheet1 chỗ R4 thành:

=RANK(O4,$O4:$Q4)+COUNTIF($O4:O4,O4)-1

Kéo ngang kéo xuống
Thanks nmhung49: E đã thử theo cách của a nhưng có một vấn đề gặp phải là nếu 2 giá trị để so sánh bằng nhau thì khi hàm rank trả về 2 giá trị đó lại có xếp hạng khác nhau. E đã làm VD cả 2 cách cố định vùng chọn của hàm Countif trong file gửi kèm. Phiền a xem giúp e nhé. Thanks!
 

File đính kèm

Thanks nmhung49: E đã thử theo cách của a nhưng có một vấn đề gặp phải là nếu 2 giá trị để so sánh bằng nhau thì khi hàm rank trả về 2 giá trị đó lại có xếp hạng khác nhau. E đã làm VD cả 2 cách cố định vùng chọn của hàm Countif trong file gửi kèm. Phiền a xem giúp e nhé. Thanks!
Xài hàm tự tạo cho đỡ nhức đầu.
 

File đính kèm

Thans Mr.Ba Tê, e chưa biết gì về code trong Excel :). Nhưng sao trong hàm của a e sửa 1 số trong cột % là tất cả biến thành #NAME? hết. Mà cũng tiện đây cho e hỏi là code này mình viết bằng ngôn ngữ gì à a?
1/ Khi mở file phải Enable Macros, lưu file dạng .xls hoặc .xlsm
2/ Hàm tự tạo viết bằng VBA, ấn Alt + F11 sẽ thấy cái này:
PHP:
Public Function X_Hang(Num As Range, Rng As Range) As Long
Dim Cll As Range, Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
X_Hang = 1
For Each Cll In Rng
    If Not Dic.Exists(Cll.Value) Then
        Dic.Add Cll.Value, ""
        If Cll.Value > Num Then X_Hang = X_Hang + 1
    End If
Next Cll
Set Dic = Nothing
End Function
Nếu không Enable Macros thì Excel nó hổng biết thằng X_Hang là cái gì nên nó hỏi #Name?
3/ Nếu lưu file kiểu .xlsx thì lần sau mở lên chẳng còn cái code nào trong file.
 
Lần chỉnh sửa cuối:
Bài của bạn rất hay hay, nên tôi có hỏi 1 người MOD cao thủ thử làm xem, có câu trả lời là công thức sau, bạn thử xem có đúng yêu cầu không:

=SUMPRODUCT((B$2:B$16>=B2)/COUNTIF(B$2:B$16,B$2:B$16))
 

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

Back
Top Bottom