如何创建具有最低 80% 的源数据值的数据透视表 table?
How to create a pivot table with the lowest 80% of the source data values?
我有以下数据:
PARAM VALUE
p1 23
p1 11
p2 15
p1 37
p3 65
p1 12
... ...
我想要的是创建一个数据透视表 table,每个参数的平均值,但不是来自完整的源数据:我希望平均值仅占每个参数的 80% 最低值。
例如:
如果 p1
具有以下值(已排序):
12
15
17
18
25
我希望枢轴 table 中的平均值考虑前 80%,即从 12
到 18
。这样我就试图过滤掉数据系列中的峰值。
该解决方案可能不是很有效,但它完成了工作。
我假设您的数据从单元格 A1
开始。
首先我将对所应用的策略进行评论,然后我将逐一介绍这些步骤。
策略
- 最初对数据进行透视以获得每个组的
VALUEs
- 在每个
PARAM
的枢轴上工作得到 80% PERCENTILE
。
- 在初始数据中创建一个键,并将每个
VALUE
与那个 PARAM
的相应 PERCENTILE
进行比较。枢轴新数据集,你就完成了。
步数
1) C1
单元格写入 Key
。在单元格 C2
中输入公式 =COUNTIF($A:A2,A2)
并复制下来。
2) 旋转此 table 并使 PARAM
为 Column Labels
,Key
为 Row Labels
和 VALUE
在 Σ values
像这样:
3) 在 G1
中插入此公式以获得 80% 处的值 =PERCENTILE(G4:G20,0.8)
G20
取决于数据透视表的行数。
4) 在单元格 D1
中写入 key1
并在单元格 D2
中插入公式 =(B2<INDEX($G:$I,MATCH(A2,$G:$I,0)))*1
并向下复制。
5) 最后调整新的 table 并使过滤器 key1
等于 1
.
我有以下数据:
PARAM VALUE
p1 23
p1 11
p2 15
p1 37
p3 65
p1 12
... ...
我想要的是创建一个数据透视表 table,每个参数的平均值,但不是来自完整的源数据:我希望平均值仅占每个参数的 80% 最低值。
例如:
如果 p1
具有以下值(已排序):
12
15
17
18
25
我希望枢轴 table 中的平均值考虑前 80%,即从 12
到 18
。这样我就试图过滤掉数据系列中的峰值。
该解决方案可能不是很有效,但它完成了工作。
我假设您的数据从单元格 A1
开始。
首先我将对所应用的策略进行评论,然后我将逐一介绍这些步骤。
策略
- 最初对数据进行透视以获得每个组的
VALUEs
- 在每个
PARAM
的枢轴上工作得到 80%PERCENTILE
。 - 在初始数据中创建一个键,并将每个
VALUE
与那个PARAM
的相应PERCENTILE
进行比较。枢轴新数据集,你就完成了。
步数
1) C1
单元格写入 Key
。在单元格 C2
中输入公式 =COUNTIF($A:A2,A2)
并复制下来。
2) 旋转此 table 并使 PARAM
为 Column Labels
,Key
为 Row Labels
和 VALUE
在 Σ values
像这样:
3) 在 G1
中插入此公式以获得 80% 处的值 =PERCENTILE(G4:G20,0.8)
G20
取决于数据透视表的行数。
4) 在单元格 D1
中写入 key1
并在单元格 D2
中插入公式 =(B2<INDEX($G:$I,MATCH(A2,$G:$I,0)))*1
并向下复制。
5) 最后调整新的 table 并使过滤器 key1
等于 1
.