前N个公司

问题:各国家所有公司数量从多到少排列,如下图黄色区域。

函数公式解决:

{=IFERROR(INDEX(SORTBY(UNIQUE(FILTER($A$2:$A$18,$B$2:$B$18=E$2))&"/"&COUNTIFS($A:$A,UNIQUE(FILTER($A$2:$A$18,$B$2:$B$18=E$2)),$B:$B,E$2),COUNTIFS($A:$A,UNIQUE(FILTER($A$2:$A$18,$B$2:$B$18=E$2)),$B:$B,E$2),-1),ROW(A1)),"")}

公式中有多个重复使用的部分:UNIQUE(FILTER($A$2:$A$18,$B$2:$B$18=E$2))是将每个国家对应公式的唯一值提取出来;COUNTIFS($A:$A,UNIQUE(FILTER($A$2:$A$18,$B$2:$B$18=E$2)),$B:$B,E$2)是统计各国家各公司分别有多少个。

以上两个部分连接就是结果所需要的公司名和数量。

使用SortBy函数,将此结果按数量的多少降序排列。

最后用Index提取,遇到超过的会产生错误值,此处用Iferror销错处理。

posted @ 2023-07-16 17:56  熬肥妖  阅读(9)  评论(0编辑  收藏  举报