我正在尝试在 PowerBI 中创建 DAX 度量。以下是我的表格结构:
销售:
创建日期。 sales_doc_no。 交货日期
订单:
销售文档编号。 交货日期
日期:
创建日期
销售到订单是 sales_doc_no 上的多对一关系 Sales to Date 是创建日期上的多对一关系
我正在尝试计算 DAX 度量: compliant_sales_doc_count ,它是销售文档级别的合规销售文档与总销售文档的比率
Sales_Compliant_Count =
var CompliantDocs = CALCULATE(
DISTINCTCOUNTNOBLANK(sales[doc_no]),
FILTER(orders,
DATEDIFF(
'orders'[delivery_date],
LOOKUPVALUE('sales'[created_date], 'sales'[doc_no], 'orders'[doc_no]),
DAY
) < 14
)
)
RETURN
CompliantDocs
Sales_nonCompliant_Count =
var NonCompliantDocs = CALCULATE(
DISTINCTCOUNTNOBLANK(sales[doc_no]),
FILTER(orders,
DATEDIFF(
'orders'[delivery_date],
LOOKUPVALUE('sales'[created_date], 'sales'[doc_no], 'orders'[doc_no]),
DAY
) >= 14
)
)
RETURN
NonCompliantDocs
当我尝试计算比率时,它会导致交叉连接,因为任何一个值都可以为空。我尝试使用合并,isblank,但交叉连接仍然保持不变。
我的最终目标是通过以下方式创建视觉效果:
sales_doc_no(来自订单表)。 创建日期(来自日期表)。 交货日期(来自订单表)。 sales_company_count。 sales_non_compile_count。 合规_百分比
我认为你对你设计关系的方式的背景有疑问。
您可能需要调整您的措施,如下所示:
Sales_Compliant_Count =
VAR CompliantDocs =
CALCULATE(
DISTINCTCOUNT('Sales'[sales_doc_no]),
FILTER(
'Orders',
'Orders'[delivery_date] <> BLANK() &&
'Sales'[created_date] <> BLANK() &&
DATEDIFF(
'Sales'[created_date],
'Orders'[delivery_date],
DAY
) < 14
)
)
RETURN
CompliantDocs
然后:
Sales_NonCompliant_Count =
VAR NonCompliantDocs =
CALCULATE(
DISTINCTCOUNT('Sales'[sales_doc_no]),
FILTER(
'Orders',
'Orders'[delivery_date] <> BLANK() &&
'Sales'[created_date] <> BLANK() &&
DATEDIFF(
'Sales'[created_date],
'Orders'[delivery_date],
DAY
) >= 14
)
)
RETURN
NonCompliantDocs
以及合规百分比的最终衡量标准:
Compliance_Percentage =
VAR TotalDocs =
DISTINCTCOUNT('Sales'[sales_doc_no])
VAR CompliantDocs = [Sales_Compliant_Count]
VAR NonCompliantDocs = [Sales_NonCompliant_Count]
RETURN
IF(
TotalDocs = 0,
BLANK(),
CompliantDocs / TotalDocs * 100
)