Google sheets 如何从范围中获取名称和前N个值

Google sheets 如何从范围中获取名称和前N个值,google-sheets,Google Sheets,我正在尝试创建一个小型排行榜,其中列有以下格式的姓名和分数: Name 1, Name 2 Value, Value Value, Value Value, Value 我想获取N个最大值,并将它们与其名称配对,如下所示: Name 2, Value 1st Largest Name 1, Value 2nd Largest Name 2, Value 3rd Largest 我发现命令LARGE允许您获取选定范围内的第n个最大值,但我不知道如何将其与列顶部的名称配对。我怀疑

我正在尝试创建一个小型排行榜,其中列有以下格式的姓名和分数:

Name 1, Name 2

Value, Value

Value, Value

Value, Value
我想获取N个最大值,并将它们与其名称配对,如下所示:

 Name 2, Value 1st Largest

 Name 1, Value 2nd Largest

 Name 2, Value 3rd Largest

我发现命令LARGE允许您获取选定范围内的第n个最大值,但我不知道如何将其与列顶部的名称配对。我怀疑我可以使用Query,但我不确定如何形成该命令。

假设您的姓名1和姓名2位于
A
B
列中,如下所示:

Name1, 202   202
Name1, 564   564
Name1, 269   269
Name1, 33   33
Name1, 455   455
Name1, 32   32


Name1, 9870   9870

Name2, 65   65
Name2, 322   322
Name2, 4566   4566

Name2, 422   422
Name2, 45   45

Name2, 5633   5633

在单元格
D1中尝试此操作:

=arrayformula(查询({array_constraint({if(A2:A)”,A$1&“,”&A2:A,),A2:A},MAX(if(A:B“”,行(A:A)),2);if(B2:B“”,B$1&“,”&B2:B,),B2:B},“按Col2描述限制3,0选择Col1订单”)

注释

只要
a:a
中有一个值,数组
{}
就会获取单元格
A1
中的值,然后是逗号,然后是列
a
的每一行中的值,然后是一个新列,该列的每一行中只有
a

{if(A2:A“”,A$1&“,”&A2:A,),A2:A}

然后一个
ARRAY\u constraint
将结果固定到列
A
中的数据数量:
MAX(如果(A:B“”,行(A:A))
和2列

作为数组的一部分,
返回数据,然后添加
如果(B2:B“”,B$1&“,”&B2:B,),B2:B
这是单元格
B1
中的值,然后是逗号,然后是列
B
中每一行的值,然后是一个新列,该列的每一行中都有值
B

因此,日期如下所示:

Name1, 202   202
Name1, 564   564
Name1, 269   269
Name1, 33   33
Name1, 455   455
Name1, 32   32


Name1, 9870   9870

Name2, 65   65
Name2, 322   322
Name2, 4566   4566

Name2, 422   422
Name2, 45   45

Name2, 5633   5633
A
QUERY
围绕此数据选择Col1并按Col2降序排序。查询结果限制为3条记录

ARRAYFORMULA
在工作表中起作用

替代配方

如果要将结果分为两列,请使用以下命令:

=arrayformula(查询({array_constraint({if(A2:A“”,A$1,),A2:A},max(counta(A:A),max(if(A:B“”,ROW(A:B))),2);if(B2:B“”,B$1,),B2:B},order by Col2 desc limit 3,0))


您是否尝试过使用
过滤器
?这非常有效,非常感谢!