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
AQUERY
围绕此数据选择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))
您是否尝试过使用过滤器
?这非常有效,非常感谢!