【问题标题】:Excel: Find most frequent occurring value in a range?Excel:查找范围内最频繁出现的值?
【发布时间】:2017-01-28 08:58:43
【问题描述】:

我在表格 1 上有一列,如下所示:

Column D
    Dog
    Dog
    Dog
    Dog
    Cat
    Cat
    Cat
    Hamster
    Frog
    Frog

在表 2 上,我想按时间顺序列出最常见的 10 个单词

Dog .  <---Most Frequent
Cat .  <---Second Frequent
Frog . <--Third
etc.

我正在尝试像这样使用索引、模式和匹配:

=INDEX(Sheet1!D:D,MODE(MATCH(Sheet1!D:D,Sheet1!D:D,0)))

这会产生 N/A 错误

但是如果我像这样在列引用中添加范围:

=INDEX(Sheet1!D1:D10,MODE(MATCH(Sheet1!D1:D10,Sheet1!D1:D10,0)))

然后就可以了。

问题是将数据添加到 D 列,我需要它来查找整个 D 列。

请谁能告诉我哪里出错了?

【问题讨论】:

  • 使用命名范围来获取数据范围。有几种方法可以做到这一点, counta , isblank 等。然后将命名范围粘贴在公式中,而不是 D1:D10
  • 空白值是导致错误的问题。如果你甚至尝试一个明确的范围,但一个单元格是空白的,你会得到同样的错误。遵循@MacroMarc 的想法,您应该会到达那里。
  • 你可以只使用数据透视表。

标签: excel formula


【解决方案1】:

如果我们使用辅助列,我们可以完全消除对数组公式的需求。在 E1 中输入 1 并在 E2 中输入:

=IF(COUNTIF($D$1:D1,D2)>0,"",1+MAX($E$1:E1))

并复制到 D 列。 (当项目被添加到列 D 时,将列 E 公式也拉下来)

最后在F1输入:

=IFERROR(INDEX(D:D,MATCH(ROWS($1:1),E:E,0)),"")

然后抄下来。在 G1 中输入:

=COUNTIF(D:D,F1)

然后抄下来:

注意:

FG 列中的小频率表是“可排序的”。

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多