如何列出范围内最常见的文本值?

时间:2016-04-20 17:32:42

标签: google-sheets

我是一位试图解决问题的中级擅长用户。基本上,我正在处理一个电子表格,其中包含许多与客户帐号相关联的订单,并且最多包含5个元数据和#34;标签"与他们相关联。我希望使用该客户帐户#来按顺序提取5个最常出现的元数据标签。

Here is a mock up of the first set of data

Account Number  Order Number    Metadata            
5043                  1         A   B   C   D
4350                  2         B   D       
4350                  3         B   C       
5043                  4         A   D       
5043                  5         C   D       
1204                  6         A   B       
5043                  7         A   D       
1204                  8         D   B       
4350                  9         B   D       
5043                 10         A   C   D   

and the end result I'm trying to create

Account Number  Most Common Tag 2nd 3rd 4th 5th
5043                  A         C   B   N/A
4350                  B         D   C   N/A N/A
1204                  B         A   C   N/A N/A

我正在尝试使用建议的公式here

=ARRAYFORMULA(INDEX(A1:A7,MATCH(MAX(COUNTIF(A1:A7,A1:A7)),COUNTIF(A1:A7,A1:A7),0)))

但我不知道如何a)使用客户帐户#作为计算范围内文本值的前提条件。 b)如何规避Match论坛只想使用单列数据和c)如何读取此范围内的第2,第3,第4和第5最常见值这一事实。

我格式化这些数据的方式并非一成不变。我怀疑我组织这些信息的方式阻碍了我从简单的解决方案中恢复过来,因此任何关于重新思考我的组织的建议都会对如何创建公式来实现这一点提供帮助。

1 个答案:

答案 0 :(得分:1)

您也可以收到此报告:

Account Number     Tag    count 
          1204      B         2
          1204      A         1
          1204      D         1
          4350      B         3
          4350      D         2
          4350      C         1
          5043      D         5
          5043      A         4
          5043      C         3
          5043      B         1

使用公式:

    =QUERY(
     {TRANSPOSE(SPLIT(JOIN("",ArrayFormula(REPT(FILTER(A2:A,A2:A<>"")&",",5))),",")),
      TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(FILTER(C2:G,A2:A<>"")&" ,")),",")),
      TRANSPOSE(SPLIT(rept("1,",counta(A2:A)*5),","))
     },
   "select Col1, Col2, Count(Col3) where Col2 <>' ' group by Col1, Col2
    order by Col1, Count(Col3) desc label Col1 'Account Number', Col2 'Tag'")

公式将计算任何标记的出现次数。