首页 > 解决方案 > PowerBI上缺少某些行时如何计算平均值?

问题描述

考虑到这个数据集:

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) 除以二(伦敦和巴黎)。

如何计算每天的平均值,包括丢失的记录(圣保罗)?


解决方案

我找到了解决方案。我认为这不是解决问题的最佳方法,但它确实有效。

所以...

  1. 创建具有每月间隔的日历表
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])
  1. 创建一个包含类别的汇总表(在本例中为城市)

  2. 创建一个 CROSSJOIN 表

DataTable = CROSSJOIN(MonthCalendar ; Cities)
  1. 使用过滤器将列添加到您的 DataTable。像这样的东西:
SalesByMonth = CALCULATE(Sum('Cities'[Sales]); FILTER('Cities';'Cities'[name] = 'DataTable'[City]))

谢谢大家。我希望有一天它对某人有所帮助。丹尼尔

标签: powerbidaxpowerquery

解决方案


您可以使用以下公式,而不是简单地使用平均函数:

Sum(Sales)/ (Max(date) - Min(date))

推荐阅读