1

给定另一列,我正在寻找一列的模式(最常见)值。

我知道该怎么做,但计算需要几分钟,并且会使 Excel 无响应。因此,我正在寻找更好的方法。


假设我的数据看起来像这样

group | Level
1       D
1       A
1.1     B
1       C
1       A
1       E

然后我希望输出看起来像这样:

group | LevelMode
1       A
1.1     B

假设数据在工作表的左上角,我现在使用这个公式,沿着 C 列拖动:

=COUNTIFS(A:A;A2;B:B;B2)/COUNTIF(A:A;A2)

这给了我组内值的比率。之后,我删除所有不高于 0.5 的内容以及重复项,如果存在,则为每个组提供模式。

这个公式完全符合我的要求,但是对于大约 50000 行,它只需要太多资源。我希望在数据透视表选项中找到它,或者在网上快速搜索后找到它,但我还没有找到任何方法来实现我的目标。

我有不错的硬件,一个相当新的 Excel 版本,并且更愿意在没有宏的情况下执行此操作。但是,如果需要宏来实现这一点,那就这样吧。

4

1 回答 1

2

试试这个:

第1步。

创建数据透视表并将其放置在 RowLabels“组”中并在其下的“级别”中。现在,将“级别”作为计数放在“值”字段中。

第2步。

见下图。点击“Level”右侧的黑色箭头(图中看不到,但应该在红色圆圈内)。选择“值过滤器”,然后选择“前 10 个”,然后将数字设置为 1(前 1 个)。完毕!!

注意:您需要为“级别”执行第 2 步。如果您对“组”执行相同的操作,它将不起作用。

在此处输入图像描述

编辑:这是结果以及数据透视表的外观。

在此处输入图像描述

现在将输出整形为所需的格式:

  1. 在数据透视表工具 > 设计下,将报表布局设置为表格形式
  2. 禁用总计和小计

假设默认设置,您现在可以轻松复制 Groups 和 LevelModes 列表

于 2013-09-02T13:17:40.560 回答