Join PowerBI统计非相关表中的行,包括筛选和非匹配

Join PowerBI统计非相关表中的行,包括筛选和非匹配,join,count,powerbi,dax,powerquery,Join,Count,Powerbi,Dax,Powerquery,我在PowerBI中有两个表和一个切片器,下面以抽象的方式呈现 我想知道在给定日期范围内为客户下的订单数量。此数据是一个示例,用于说明-实际上大约有10000个客户和500000个订单,两个表都有许多其他字段、ID等 我的挑战- 虽然通过关联表格和进行计数很容易做到这一点,但当我仍然希望看到订单为0的客户时,困难就来了,更重要的是,我希望这项工作在一个日期范围内进行。换句话说,我不希望没有订单的客户从列表中消失,而是希望他们出现在列表中,但根据日期范围,其值为0。如果这可以作为一个衡量标准,那

我在PowerBI中有两个表和一个切片器,下面以抽象的方式呈现

我想知道在给定日期范围内为客户下的订单数量。此数据是一个示例,用于说明-实际上大约有10000个客户和500000个订单,两个表都有许多其他字段、ID等

我的挑战- 虽然通过关联表格和进行计数很容易做到这一点,但当我仍然希望看到订单为0的客户时,困难就来了,更重要的是,我希望这项工作在一个日期范围内进行。换句话说,我不希望没有订单的客户从列表中消失,而是希望他们出现在列表中,但根据日期范围,其值为0。如果这可以作为一个衡量标准,那也会很好,这样我可以逐月查看尚未订购的总客户数。我尝试过外部连接、合并查询、交叉连接和查找,但似乎无法破解

示例1:如果我将订单日期切片器设置为:2017年1月2日至2018年1月1日,我希望得到以下结果

示例2:如果我将订单日期切片器设置为:2017年1月3日至2017年1月6日,我希望得到以下结果

感谢您的帮助


谢谢

这完全可以通过测量来实现。当您使用订单字段为每个客户计算行数时,必须执行
COUNTROWS()
函数

在您的关系仍处于活动状态的情况下,我们可以在度量值中加上前缀以检查空格,在这种情况下,返回0。像这样的东西会有用的

Measure = IF(ISBLANK(COUNTROWS(Orders)),0,COUNTROWS(Orders))

在本例中,
'Orders'
是包含
订单
订单日期
字段的表

如果我显示所有尝试,则会有另外几页屏幕截图,这会使问题变得混乱。你的建议不起作用,因为日期过滤器在订单上,它将排除0个项目,而不是用0值显示它们。在我因为没有考虑ISBLANK()而责备自己几分钟后,我得出结论,你是个天才:)-谢谢!现在确定如何将其表示为每月价值(一个月内从未订购过的客户)。