我希望有人能提供帮助,因为我已经完全没有想法了。
我正在处理绩效报告数据,产生了许多视觉效果以总结最新数据。为了允许用户回顾性地生成前几个季度的报告,我添加了一个日期切片器,作为“查看截至xxxx日期的数据”的方法。
这是我的数据表的粗略表示-截止日期为英文格式(dd / mm / yyyy):
收视率是在另一个系统(基于一组目标)中计算的,因此此处没有计算列。实际上,有更多的指标可以报告不同的时间段(一些每周,一些每年等),并且在数据“到期”之前会有不同的滞后时间。
我最终设法获得了返回最新实际值的度量:
MostRecentActual =
VAR SlicerDate = MAX ( Dates[Day] )
RETURN
CALCULATE (
SUM ( Data[Actual] ),
Data[Data due] <= SlicerDate,
LASTDATE ( Data[Data due] )
)
我不完全确定自己做对了,但似乎可行。如果我理解正确,我会很高兴,因此欢迎您提供解释或选择。
我现在要做的是在开始时显示一个基本的摘要饼图,该饼图显示了截至选定日期为红色,琥珀色,绿色或未分级的度量比例。因此,我需要它来计数每个等级的数量,但是每个度量仅一个,并且仅用于最接近切片器日期(但在此之前)的日期,具体取决于度量。因此,使用以上三个度量,如果将切片器设置为10/10/2019(英语格式-dd / mm / yyyy),它将针对度量A和C以及针对2019/20年第二季度的RAG进行计数对于措施B,因为存在时滞,这意味着数据要到月底才准备就绪。结果:-A:琥珀色,B:绿色,C:红色。
如果我能够创建对这些RAG进行计数的度量,那么我想将其添加到饼图中,并带有图例“ Rating”,以便将其适当地拆分。我目前似乎无法做到这一点,因为它不计算切片器之前的所有日期(而不仅仅是最近的日期),或者由于我不明白的原因而从某种程度上丢失了评分。
我们将非常感谢您的帮助。
非常感谢
本
进一步更新。我已经为此工作了一段时间!
我创建了一个COUNTAX度量来尝试做我想做的事情。在某些情况下,它起作用,但不是全部起作用,而在关键情况下则不起作用。我的度量是:
TestCountaxpt2 =
VAR SlicerDate = MAX ( Dates[Date] )
VAR MinDiff =
MINX (
FILTER (
ALL ( Data ),
Data[Ref] IN VALUES ( Data[Ref] ) &&
Data[Data due] <= SlicerDate
),
ABS ( SlicerDate - Data[Data due] )
)
VAR thisdate =
MINX (
FILTER (
ALL ( Data ),
Data[Ref] IN VALUES ( Data[Ref] ) &&
ABS ( SlicerDate - Data[Data due] ) = MinDiff
),
Data[Data due]
)
RETURN
COUNTAX (
FILTER ( Data, Data[Data due] = thisdate && Data[Ref] IN VALUES ( Data[Ref] ) ),
Data[RAG]
)
它为绩效指标的子集生成了下表,看起来几乎可以:
显示TestCountaxpt2度量结果的表:
第三列是上面的小节,似乎每小节计算一个RAG,并且由于将切片器设置为2020年1月3日,日期看起来正确。第3栏的总计使我感到困惑。我不知道那是什么,我也不明白为什么它不等于7。
如果我从数据表中添加RAG列,则会出错:
相同的表格,但添加了RAG评级:
生成的饼图也是错误的。它应该显示2绿色,2红色,2灰色(无等级)和1琥珀色。这就是发生的事情.......
DAX度量的饼图,图例中带有RAG评级:
我可以看到它在做什么,这是在整个表中计算出切片器的最新到期日期,并使用该日期(即2020年1月1日),而我希望它为每个度量分别计算该日期。
链接到PBIX:
https://drive.google.com/file/d/1RTokOjAUADGHNXvZcnCCSS3Dskgc_4Cc/view?usp=sharing
修改公式以计算收视率:
RAGCount =
VAR SlicerDate =
MAX ( Dates[Day] )
RETURN
COUNTAX (
ADDCOLUMNS (
SUMMARIZE (
FILTER ( Data, Data[Data due] <= SlicerDate ),
Data[Ref],
"LastDateDue", LASTDATE ( Data[Data due] )
),
"CountRAG", CALCULATE (
COUNTA ( Data[RAG] ),
Data[Data due] = EARLIER ( [LastDateDue] )
)
),
[CountRAG]
)
这是它产生的表:
答案 0 :(得分:1)
第三列总计= 4的原因很简单。 Array
(
[0] => Array
(
[id] => 29
[name] => Tony Stark
[email] => starktony@yahoo.com
[dob] => 1987-03-12
[created_at] => 2020-09-30 18:18:37
)
[1] => Array
(
[id] => 28
[name] => Howard Stark
[email] => starkhoward@gmail.com
[dob] => 1895-07-12
[created_at] => 2020-09-30 18:07:05
)
[2] => Array
(
[id] => 27
[name] => Ramesh Jain
[email] => rameshjain@gmail.com
[dob] => 1996-05-18
[created_at] => 2020-09-30 18:03:25
)
[3] => Array
(
[id] => 17
[name] => Ho Yinsen
[email] => senho@gmail.com
[dob] => 1896-05-14
[created_at] => 2020-09-30 14:26:30
)
)
在表中的所有Ref上都是最大的,并且只有四个Ref与该日期匹配。
要解决此问题并获取所需的总数,您需要遍历每个Ref并独立计算每个的SelectDate
,然后再进行查找或求和。
我还没有测试这段代码,但是它应该给您一个尝试方向的想法:
SlicerDate
由内而外
请注意,对于4,由于FILTER中最里面的数据表不是整个数据表,而是在本地过滤器上下文中可见的那一部分,因此可视化中的总计行将包含多个引用。