我在QlikSense中面临一个问题,试图在已经按源分组的数据集上计算一些统计指标(Percentiles,Quartiles,StdDev,Median等)。
我的意思是我的数据集类似于以下内容,其中我对Week和Customer Age的每个组合都有购买总数:
我想显示客户年龄的中位数,由于数据集的结构,我不能使用分数或中位数内置函数,因为它们会出现不同的东西。
假设我想计算所有3周内人们的年龄中位数,这样我想知道完成50%购买的人的年龄。
为了让您更好地理解这个问题,我向您展示了直方图:
在这种情况下,我想得到的中位数是24-26岁,因为总人口的50%属于该范围。
我在这里找到了一个有用的参考,但我在QlikSense中编写这个公式时遇到了麻烦
https://mba-lectures.com/statistics/descriptive-statistics/603/relationship-between-quartiles-decile ...
非常感谢提前。
[编辑]:这是我的数据模型视图:
[编辑2]:Here是我的qvf,其数据集与我正在使用的原始数据集更相似。如您所见,我无法使用您的公式得到正确的结果。另外,我想用它来绘制中位数到几周的趋势,但似乎不可能(即使我使用了我在评论中指出的公式的修改版本)。
如果你想在这种情况下计算中位数,你需要加权中位数,并基本检查中间的维度值:
Aggr(
If(
(Rangesum(
Above([# Purchases],0,RowNo())
)
/Sum(TOTAL [# Purchases]))>=0.5
and
(Rangesum(
Above([# Purchases],1,RowNo()-1))
/Sum(TOTAL [# Purchases]))<0.5
,[Customer Age])
,[Customer Age])