让我们说我有一个包含以下各列的表Doc_Table:
通过结合Doc_Ref和Version_Date,一行是唯一的。
我正在搜索计算该月最后一个版本的文档计数。例如:如果我在4月收到3个版本11 / 4、15 / 4和24/4,则仅使用4月的最新版本。
在SQL中,它看起来像:
Select count(Doc_Ref)
From Doc_Table
Where Month(Version_Date) in (Select MAX(Version_Date), Month(Version_Date) From Doc_Table Group By Month(Version_Date))
让我们说我们具有以下要素:
Doc_Ref ; Version_Date ; Other_Attributes
Ref1 ; 2020-03-20 ; ...
Ref2 ; 2020-03-20 ; ...
Ref1 ; 2020-04-11 ; ...
Ref2 ; 2020-04-11 ; ...
Ref3 ; 2020-04-11 ; ...
Ref1 ; 2020-04-15 ; ...
Ref2 ; 2020-04-15 ; ...
Ref3 ; 2020-04-15 ; ...
Ref1 ; 2020-04-24 ; ...
Ref2 ; 2020-04-24 ; ...
Ref3 ; 2020-04-24 ; ...
Ref4 ; 2020-04-24 ; ...
预期结果将是:
Month Year - Count_Of_Doc_Ref
March 2020 - 2
April 2020 - 4
您能协助我进行KPI创作吗?谢谢您的见解。
编辑:我根据Agustin Palacios的答复得出了该答案
NB of Ongoing Doc Ref Shared =
VAR VersionLessThan = SELECTEDVALUE('Axis Doc_Ref'[Version Date];MAX('Axis Doc_Ref'[Version Date]))
VAR OngoingEWPerMonth = CALCULATE
( [NB of Ongoing Doc Ref]
;FILTER('Axis Doc_Ref';'Axis Doc_Ref'[Version Date] = MAX('Axis Doc_Ref'[Version Date]))
)
RETURN
CALCULATE
(
CALCULATE
( [NB of Ongoing Doc Ref]
;FILTER('Axis Doc_Ref';'Axis Doc_Ref'[Version Date] = MAX('Axis Doc_Ref'[Version Date]))
)
;USERELATIONSHIP('Axis Doc_Ref'[Version Date];'Axis EW Created Date'[Date - Created])
;FILTER(all('Axis Doc_Ref'[Version Date]); 'Axis Doc_Ref'[Version Date] <= VersionLessThan)
)
答案 0 :(得分:2)
首先,您必须有一个列用于月份,而另一列则用于年份。 我使用以下方法创建了两者:
列年
Year = YEAR( 'Table'[Version_Date] )
列月份
Month = MONTH( 'Table'[Version_Date] )
然后使用此措施:
MaxCount =
CALCULATE (
COUNT ( 'Table'[Doc_Ref] ),
FILTER ( 'Table', 'Table'[Version_Date] = MAX ( 'Table'[Version_Date] ) )
)
使用Year,Month和MaxCount创建一个表。 结果是:
希望对您有帮助。
答案 1 :(得分:1)
这也有效:
我假设您有一个日期维度表(如果没有,请使用一个)。 dimDate表应与'Doc_Table'[Version_Date]具有1 ::关系。然后在可视表中将年和月添加到表中(来自dimDate表),最后将此度量添加到表中:
Distinct Doc_ref =
DISTINCTCOUNT('Doc_Table'[Doc_ref])
视觉效果将创建年份和月份的上下文,然后DISTINCTCOUNT函数将计算例如中有多少个不同的Doc_ref。 2020年4月(4)。
答案 2 :(得分:0)
尝试以下操作:
EVALUATE
SUMMARIZE (
FILTER (
CALCULATETABLE (
ADDCOLUMNS (
RefTable,
"LastDate",
VAR MaxDate =
MAXX (
FILTER (
RefTable,
MONTH ( RefTable[Version_Date] ) = MONTH ( EARLIER ( RefTable[Version_Date] ) )
),
RefTable[Version_Date]
)
RETURN
IF ( MaxDate = RefTable[Version_Date], MaxDate ),
"Month_Year", FORMAT ( RefTable[Version_Date], "MMM YY" )
)
),
[LastDate] <> BLANK ()
),
[Month_Year],
"Count", COUNTA ( RefTable[Doc_Ref] ) )
让我们知道这是否对您有用。
最佳
大卫