【问题标题】:Finding median using pivot table in Excel using two filtered columns使用两个过滤列在 Excel 中使用数据透视表查找中位数
【发布时间】:2015-11-01 03:55:39
【问题描述】:

我有 A 列作为作业类型。 我有经验范围的 B 列。 我有 C 列的薪水。 这些在名为“数据”的工作表中。

我创建了一个数据透视表,其中 Job Type 为行,Experience Range 为列。 (在另一张纸上)

我想找到数据透视表中每个单元格的中位数。

我该怎么做?

例如如何找到所有“少于 2 年”(单元格 B1)经验的“舞台经理”(单元格 A2)的薪水中位数?

请帮忙。谢谢!

【问题讨论】:

    标签: excel filter pivot-table median


    【解决方案1】:

    正如您毫无疑问地发现的那样,中位数并未列在分组选项(总和、最小值、最大值、计数等)中。

    似乎没有直接解决问题的方法;但是,您可以通过adding custom a formula inside the table 破解它。然后在公式中使用median() function

    另一种方法是放弃数据透视表和use array formulas instead

    【讨论】:

    • 嗨,雷蒙德,感谢您的回复。当我仅沿 A 列过滤时,我能够找出一个数组公式: =MEDIAN(IF('DATA'!A:A=A2,'DATA'!C:C)) 虽然,我想不出办法过滤两列。如果你能帮我解决这个问题,那就太好了。谢谢! :)
    • AND() 和 OR() 函数将有助于多列​​过滤。 bluemoosetech.com/microsoft-excel-functions.php?jid=19&
    • 我试过了。 AND() 函数返回 TRUE/FALSE 值。它没有给我需要的两个数据集的交集。
    • 嵌套 IF 有效!非常感谢您的帮助,雷蒙德! :)
    【解决方案2】:

    您可以将* 用于和,+ 用于或。 FALSE 编码为0TRUE 编码为1

    1. 0*1 = 1,所以如果只满足一个条件,那就是FALSE(AND)
    2. 1+01+1 is >0,所以如果只满足一个条件,它仍然是>0 (OR)

    您可以使用这个事实来测试您的条件是否>0,然后转换您的数组,这样如果条件为真,则数组就是数组,否则等于。这将基本上消除所有不满足条件的行(使它们在任何数组公式中都算作空白)

    您可以将此标记用于大量ANDOR 条件。

    如果您使用名称管理器来命名您的数组,那么您可以非常轻松地快速更改条件并创建模拟数据透视表。

    然后您可以使用聚合函数忽略隐藏的行(例如聚合可以计算中位数、百分位数和其他东西),然后过滤器函数可以有效地用作枢轴过滤器。

    我通常将我的第一列设置为测试列,测试行是否隐藏,如果可见则返回 1,否则返回 0。然后我将该条件构建到我的条件堆栈中以充当附加的 AND 开关。这意味着您的公式突然对过滤器做出反应,只考虑过滤后的值。

    这个东西非常适合对大量数据进行多条件计算,而无需在每次过滤后手动计算 - 计算会在您过滤时即时发生!

    计算可能需要 3-5 秒,具体取决于您有多少条件以及原始数据的大小,因此不如数据透视表快,但非常方便。

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      相关资源
      最近更新 更多