前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销错处理。