使用 DAX,如何在过滤相关 table 时计算 table?
Using DAX, how do I calculate a table when filtering on a related table?
我正在尝试使用 DAX 查找两个结果集的交集,但我真的很难计算出这两个结果集。
我有一个事实 table,FactCheckForUpdates,它与名为 'Log Date' 的日期 table 有关系。 FactCheckForUpdates 包含机器 ID,我想 return 最近 2 个完整月的 ID。
我可以使用以下公式计算机器 ID 的非重复计数:
2Month Distinct Machines:=CALCULATE (
[Distinct Machine Ids],
FILTER(
ALL( 'Log Date' ),
( 'Log Date'[YearMonthNumber] >= MAX( 'Log Date'[YearMonthNumber] ) - 3 )
&& ( 'Log Date'[YearMonthNumber] <= MAX( 'Log Date'[YearMonthNumber] ) - 1 )
)
)
其中 'Distinct Machine Ids' 计算为:
:=DISTINCTCOUNT([MachineId])
其中 'YearMonthNumber' 在 'Log Date' table 上计算为:
=('Log Date'[YearKey] - MIN('Log Date'[YearKey])) * 12 + 'Log Date'[MonthOfYearKey]
(实际上这给出了整个日期维度上下文中的月份数)。
任何人都可以帮我更新 [2Month Distinct Machines] 表达式,以便 return 计算该期间机器 ID 的不同计数,它 return 是 table 的机器 ID?
我试过使用 CALCULATETABLE 函数,但它不接受日期过滤器上的 MAX 聚合。我得到的最接近的是这个公式:
CALCULATETABLE (
ADDCOLUMNS (
SUMMARIZE ( FactCheckForUpdates, FactCheckForUpdates[MachineId] ),
"meh", CALCULATE ( SUM ( FactCheckForUpdates[CFUPing] ) )
),
FactCheckForUpdates[LogDateKey] > DATE ( 2016, 4, 1 )
)
但是我不知道如何在这里使用 'Log Date' table。
非常感谢任何帮助!
这个怎么样:
CALCULATETABLE (
VALUES(FactCheckForUpdates[MachineId]),
FILTER(
ALL( 'Log Date' ),
( 'Log Date'[YearMonthNumber] >= MAX( 'Log Date'[YearMonthNumber] ) - 3 )
&& ( 'Log Date'[YearMonthNumber] <= MAX( 'Log Date'[YearMonthNumber] ) - 1 )
)
)
你从哪里调用这个 DAX 表达式?它只会在另一个表达式中或作为查询的一部分起作用。
我正在尝试使用 DAX 查找两个结果集的交集,但我真的很难计算出这两个结果集。
我有一个事实 table,FactCheckForUpdates,它与名为 'Log Date' 的日期 table 有关系。 FactCheckForUpdates 包含机器 ID,我想 return 最近 2 个完整月的 ID。
我可以使用以下公式计算机器 ID 的非重复计数:
2Month Distinct Machines:=CALCULATE (
[Distinct Machine Ids],
FILTER(
ALL( 'Log Date' ),
( 'Log Date'[YearMonthNumber] >= MAX( 'Log Date'[YearMonthNumber] ) - 3 )
&& ( 'Log Date'[YearMonthNumber] <= MAX( 'Log Date'[YearMonthNumber] ) - 1 )
)
)
其中 'Distinct Machine Ids' 计算为:
:=DISTINCTCOUNT([MachineId])
其中 'YearMonthNumber' 在 'Log Date' table 上计算为:
=('Log Date'[YearKey] - MIN('Log Date'[YearKey])) * 12 + 'Log Date'[MonthOfYearKey]
(实际上这给出了整个日期维度上下文中的月份数)。
任何人都可以帮我更新 [2Month Distinct Machines] 表达式,以便 return 计算该期间机器 ID 的不同计数,它 return 是 table 的机器 ID?
我试过使用 CALCULATETABLE 函数,但它不接受日期过滤器上的 MAX 聚合。我得到的最接近的是这个公式:
CALCULATETABLE (
ADDCOLUMNS (
SUMMARIZE ( FactCheckForUpdates, FactCheckForUpdates[MachineId] ),
"meh", CALCULATE ( SUM ( FactCheckForUpdates[CFUPing] ) )
),
FactCheckForUpdates[LogDateKey] > DATE ( 2016, 4, 1 )
)
但是我不知道如何在这里使用 'Log Date' table。
非常感谢任何帮助!
这个怎么样:
CALCULATETABLE (
VALUES(FactCheckForUpdates[MachineId]),
FILTER(
ALL( 'Log Date' ),
( 'Log Date'[YearMonthNumber] >= MAX( 'Log Date'[YearMonthNumber] ) - 3 )
&& ( 'Log Date'[YearMonthNumber] <= MAX( 'Log Date'[YearMonthNumber] ) - 1 )
)
)
你从哪里调用这个 DAX 表达式?它只会在另一个表达式中或作为查询的一部分起作用。