Excel - extracting top 5 values

。_饼干妹妹 提交于 2020-01-25 11:57:07

问题


I would like to extract the top 5 players based on the sales by each employee (without Pivot Table / Auto filter).

Refer my input and output screenshot

Snapshot

Any suggestions, how to obtain first top 5 ranks (even if repeated; as shown in the screenshots)

I have verified Extract Top 5 Values for Each Group in a List without VBA and some other links also.

Thanks in advance for your time and consideration! Please let me know if my request is unclear and/or if you have any specific questions.


回答1:


This is what I use to track the top 5 absentees... Edit to suit your needs.

Formula in cell A1:

=INDEX(A$13:A52,AGGREGATE(15,6,ROW($1:$40)/(B$13:B$52=B1),COUNTIF(B$1:B1,B1)))

Formula in cell B1: LARGE(B$13:B$52,ROW())




回答2:


Try this one. As you have in your sample:

On Cell E16:

=VLOOKUP(LARGE($C$3:$C$12,ROW()-15),CHOOSE({2/1},$A$3:$A$12,$C$3:$C$12),2,FALSE)

On Cell F16:

=VLOOKUP(LARGE($C$3:$C$12,ROW()-15),CHOOSE({2/1},$B$3:$B$12,$C$3:$C$12),2,FALSE)

On Cell G16:

=VLOOKUP(LARGE($C$3:$C$12,ROW()-15),$C$3:$C$12,1,FALSE)

You can drag it down to get the list sorted. Hope it helps!




回答3:


An alternative approach using Power Query which is available in Excel 2010 Professional Plus and all later versions of Excel.

Steps are:

  1. Add your input data table to the Power Query Editor;
  2. Sort the table by Sales then by Name;
  3. Add an Index Column starting from 1;
  4. Filter the Index column to show values less than or equal to 5;
  5. Remove the Index column, then you should have something like the following:

Close & Load the output table to a new worksheet (by default).

Here are the power query M Codes for your reference. All functions used are within GUI so it should be easy and straight forward.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Employee", type text}, {"Month", type text}, {"Sales", type number}}),
    #"Sorted Rows" = Table.Sort(#"Changed Type",{{"Sales", Order.Descending}, {"Employee", Order.Ascending}}),
    #"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1),
    #"Filtered Rows" = Table.SelectRows(#"Added Index", each [Index] <= 5),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Index"})
in
    #"Removed Columns"

Let me know if you have any questions. Cheers :)



来源:https://stackoverflow.com/questions/58639470/excel-extracting-top-5-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!