使用单个公式在具有不同数据类型的多个列中进行同等排名。可能吗?

Rank equally across multiple columns with different data types using a single formula. Is it possible?

查看下面的数据集。它有 3 列(PTQ、% Growth、$ Growth),所有这些都需要单独排名,然后汇总,然后再次排名以获得每个地区的总实力排名。有什么办法可以用一个公式做到这一点吗?我经常这样做,最好不要每次都单独对所有内容进行排名。基本上我需要在“力量排名”列结束。

澄清一下,我不想在一列上排名第一,然后在另一列上排名第一,它们都需要排在一起。

我们可以使用 Office 365 LET 和 SORT。 RANK不允许使用数组,所以我们需要凑合用MATCH和SORT。

=LET(
    ptq,A2:A10,
    grwt,B2:B10,
    grwthd,C2:C10,
    ptqrnk,RANK(ptq,ptq),
    gwtprnk,RANK(grwt,grwt),
    gwtdrnk,RANK(grwthd,grwthd),
    sm,ptqrnk+gwtprnk+gwtdrnk,
    MATCH(sm,SORT(sm),0))

我想为非 365 用户添加一个解决方案:

编辑:稍作修改,使返回的排名模仿 RANK 函数的排名,感谢@Scott Craner

=MMULT(N(MMULT(CHOOSE({1,2,3},RANK(A2:A10,A2:A10),RANK(B2:B10,B2:B10),RANK(C2:C10,C2:C10)),{1;1;1})>TRANSPOSE(MMULT(CHOOSE({1,2,3},RANK(A2:A10,A2:A10),RANK(B2:B10,B2:B10),RANK(C2:C10,C2:C10)),{1;1;1}))),ROW(A2:A10)^0)+1

可能需要使用 CTRL+SHIFT+ENTER 提交,具体取决于所使用的 Excel 版本。

静态

{1;1;1}

与正在查询 3 列的事实有关,当然可以用动态替代项替换。