【问题标题】:Mode Text 2nd most common text value模式文本第二个最常见的文本值
【发布时间】:2018-05-08 10:33:31
【问题描述】:

IFERROR(INDEX($I$7:$I,MODE(IF($I$7:$I<>"",MATCH($I$7:$I,$I$7:$I,0)))),"No data")

使用这个计算最常见文本值的公式,我需要第二个最常见的值。

第一栏内容:

苹果

橙色

苹果

苹果

橙色

在这个例子中,我需要得到 Orange。这怎么可能?我不知道怎么做。

【问题讨论】:

  • $I$7:$I 类型引用在 Excel 中不起作用 - 您是否在 Google 中这样做?如果你有 2 个苹果、2 个橙子和 1 个香蕉,会发生什么?您的原始公式将为您提供苹果或橙子之一(首先出现的那个)。您的新公式是否需要给其他水果 2 个实例?

标签: excel text formula mode


【解决方案1】:

我在 Excel 先生上找到了这个

在数组中返回最常见、第二常见、第三常见等文本字符串

电子表格公式

单元格___公式'注意单元格是B2、D2、E2。 C 列为空白

B2  =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=COUNTIF($A$2:$A$100,A2),COUNTIF($A$2:$A$100,A2)+(ROW()/1000),""))
D2  =IF(ROWS($1:1)>COUNT(B:B),"",INDEX(A:A,MATCH(LARGE(B:B,ROWS($1:1)),B:B,0)))
E2  =IF(D2="","",COUNTIF($A$2:$A$100,D2))<br><br>

结果

___ A ________ B ___C ___D _________E

1 个数据集:___Helper ____ 姓名 ____ 出现次数
2 哈蒙 _____________ 威廉姆斯 ______4
3 史密斯 _______________ 史密斯 ________3
4 史密斯 _______________ 哈蒙 ______2
5 哈蒙_____ 2.005
6 威廉姆斯
7 威廉姆斯
8 史密斯 _______3.008
9 威廉姆斯
10 威廉姆斯____4.010

【讨论】:

【解决方案2】:

数据透视表可能适合:

并应对等级关系。

【讨论】:

    【解决方案3】:

    您可以使用数组公式提取列表中出现频率最高的项目。

    =INDEX(MyList,MATCH(MAX(COUNTIF(MyList,MyList)),COUNTIF(MyList,MyList),0))
    

    请注意,数组公式必须使用 Shift+Ctl+Enter 来确认,而不是普通公式所需的惯用单数 Enter。输入错误时会显示#NUM!错误。

    为简单起见,我在公式中使用了命名范围MyList。但是,如果您愿意,可以将名称替换为 $I$7:$I$1000。

    要提取列表中第二频繁的表达式,您可以使用与上述类似的公式。

    =INDEX(MyList,MATCH(LARGE(COUNTIF(MyList,MyList),MAX(COUNTIF(MyList,MyList))+1),COUNTIF(MyList,MyList),0))
    

    这个公式建立在 n 等于最高出现次数的逻辑之上。因此,第二高的必须排名为 n + 1,即上述公式中的MAX(COUNTIF(MyList,MyList))+1)。用同样的方法可以提取出第三名。

    您可以将这些公式嵌入到 IFERROR() 函数中。

    【讨论】:

    • =INDEX(MyList,MATCH(LARGE(COUNTIF(MyList,MyList),MAX(COUNTIF(MyList,MyList))+1),COUNTIF(MyList,MyList),0)) 将 +1 更改为 +2 不会返回第三频繁的值,它会继续返回第二频繁的值。
    • 对不起。由于旅行活动,我不会有时间很快研究这个。建议您发布公式并请人对其进行调整以返回第 3 和第 4。
    【解决方案4】:

    您可以尝试将所有这些结合在一个公式中,但在电子表格环境中只需几个单独的步骤即可解决问题更简单、更灵活。

    获取您要计算/排名的给定值列 - 我将在下面的示例中将其称为 RankList

    如果您没有设置命名范围(帮自己一个忙并使用命名范围),您会希望这是您的列范围 - 即 A:A

    现在在另一列使用

    =unique(RankList)
    

    这是你的唯一值列表,现在我们只需要计算原始 RankList 中每个唯一值的实例 - 这很简单 - 在下一列中简单地使用

    =countif(RankList,B1)
    

    上面的 B1 表示与公式相邻的单元格,无论它可能在您的工作表上。现在使用每个项目的相对单元格值自动填充公式。现在您的所有项目都按实例计数。

    现在我们要按值从高到低对它们进行排序。创建另一个命名范围,选择包含刚刚创建的 =unique(RankList) 和 =countif(RankList,B1) 公式的两列,我会参考它作为 UniqueCount

    使用下面的

    =sort(UniqueCount, 2, false)
    

    就是这样。同样,您可以通过堆叠上述示例中的公式来完成此操作,但实际上我发现您以后不知道您还想对您的数据/工作表做什么。像这样将其分解成离散的步骤可以更容易进行调整。

    【讨论】:

      猜你喜欢
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2015-08-10
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多