如何在Tableau中计算每周各天的每日利润占比中位数?
解决Tableau中每周各天利润占比中位数的计算问题
首先得明确你遇到报错的原因:你的Profit_Prop是用SUM聚合后的计算字段,Tableau不允许聚合函数嵌套聚合函数,所以直接套MEDIAN肯定行不通。咱们得换个思路——先算出每一天的利润占比,再对这些每日值按周几取中位数。
下面是具体操作步骤:
1. 创建每日利润占比的计算字段
新建一个计算字段,命名为Daily_Profit_Prop,输入以下公式:
{FIXED [Date] : SUM([Profit])/SUM([Sales])}
这个FIXED LOD表达式的作用是:按照精确日期Date分组,计算每一天的总利润除以总销售额,得到的是每个日期对应的单个利润占比值(而非聚合结果),这样后续的中位数函数就能正常处理它了。
2. 创建按周几分组的中位数计算字段
再新建一个计算字段,命名为Median_Profit_Prop_By_Weekday,输入公式:
MEDIAN([Daily_Profit_Prop])
现在这个公式就能正常运行了:Daily_Profit_Prop是每个日期的独立值,MEDIAN会自动按照你拖入的WEEKDAY(Date)维度分组,计算每周各天的利润占比中位数。
3. 搭建可视化视图
- 将
WEEKDAY(Date)拖到列功能区; - 将
Median_Profit_Prop_By_Weekday拖到行功能区; - 调整标记类型为你需要的样式(比如条形图、线图),就能清晰展示每周各天的利润占比中位数了。
如果想验证数据准确性,可以暂时把Date拖到详细信息里,查看每个日期的Daily_Profit_Prop是否正确,确认无误后再移除即可。
内容的提问来源于stack exchange,提问作者Logan Wilson
相关产品推荐
相关产品推荐

