【发布时间】:2019-08-20 20:44:27
【问题描述】:
考虑这个数据集:
Day | City | Sales
2019-01-20 | London | 900
2019-01-20 | Paris | 800
2019-01-20 | Sao Paulo | 700
2019-01-21 | London | 700
2019-01-21 | Paris | 800
我需要计算每个城市每天的销售平均值。但是,在 2019 年 1 月 21 日,圣保罗没有记录。应该理解为零,没有销量。
当我创建一个简单的平均值时,PowerBI 会忽略丢失的记录,并将总数 (700 + 800) 除以 2(伦敦和巴黎)。
如何计算每天的平均值,包括缺失的记录(圣保罗)?
解决方案
我找到了解决办法。我认为这不是解决问题的最佳方法,但它确实有效。
所以...
- 创建一个以月为间隔的日历表
MonthCalendar =
var FullCalendar = ADDCOLUMNS(CALENDAR("2019-1-1";DATE(YEAR(NOW());MONTH(NOW())+1;DAY(NOW())));"Mês";EOMONTH([Date];0))
return
SUMMARIZE(FullCalendar;[Mês])
创建一个包含类别(在本例中为城市)的汇总表
创建 CROSSJOIN 表
DataTable = CROSSJOIN(MonthCalendar ; Cities)
- 使用过滤器将列添加到您的 DataTable。像这样:
SalesByMonth = CALCULATE(Sum('Cities'[Sales]); FILTER('Cities';'Cities'[name] = 'DataTable'[City]))
谢谢大家。我希望有一天它对某人有所帮助。 丹尼尔
【问题讨论】:
标签: powerbi dax powerquery