所需的最终结果是生成一个图表,每当生成时,它会显示除最新值之外的所有值。因此,如果在我的数据集中,我今年的最后一个时期是12,那么我希望去年和今年的所有时期都出现在最后一个为12的时期之外。
事实上,我有3个字段:年份,期间和延迟。
年份显示为:2017年。总共有13个期间,它们显示为:01,02,03,[...],13。为了方便起见,我创建了一个字段
Fields!YearPeriod.Value =Fields!Year.Value+Fields!Period.Value
现在它,我可以单独使用2个字段,而YearPeriod显示如下(示例):201701。因此,这允许我使用Max()函数来隔离我试图排除的最后一个句点。 / p>
Max(Fields!YearPeriod.Value)
这是我被卡住的地方!我尝试在我的图表上使用过滤器,但是我收到一条错误消息,指出过滤器不能包含诸如First,Last,Max,Min等功能。所以我试图在我的IF中使用IIF相反,图形值(见下文),但是一旦我生成,它就会显示一个完全空的图形。:
=IIF(Fields!YearPeriod.Value=Max(Fields!YearPeriod.Value), Nothing, Fields!Delay.Value)
所以,我尝试使用Graph属性/可见性部分,我应用了类似的功能,但情况更糟:它使整个图形一起消失......
这似乎是一件相当简单的事情,但最后,我肯定会陷入困境。谢谢大家!
答案 0 :(得分:1)
在“类别组属性”中设置过滤器,而不是“图表过滤器属性”。
在Category Groups
窗格中,右键点击YearPeriod
,然后选择Category Group Properties...
在“过滤器”标签中添加包含以下设置的过滤器:
在Value
中使用此表达式:
=MAX(Fields!YearPeriod.Value,"DataSetName")
将DataSetName
替换为您的实际名称。
聚合函数在图表过滤器中不起作用,因为没有作用域(与整个数据集不同),这就是使用MAX过滤图表不起作用的原因。
更新:在图表中添加年份作为系列。
将Year
字段添加到Series
设置中的Chart Data
窗格。
它会为每个Year
值提供一行。
更新2:将YearPeriod用作Category Group
,但将标签设置为Period
,同时在系列组中使用Year
。
您可以设置要在图表中显示的标签,它不依赖于您正在使用的组字段或表达式:
在Filter
中使用与我之前使用的完全相同的表达式。这是我隐藏去年(201713)的最后一个值的示例
如果有帮助,请告诉我。
答案 1 :(得分:0)
亚历杭德罗的回答非常有效,只要你不介意让你的系列相互跟随而不是叠加。 我找到了以下答案,允许它与叠加的系列一起使用,效果很好。
这就是叠加系列的意思,我圈出了我不想显示的数据(即当年的最后一段):
<强>解决方案:强> 众所周知,过滤器通常不允许聚合,这是我开始使用此问题的首要原因。它不允许我。
所以我发现这个链接详细说明了如何“硬编码”执行聚合sum,count,min,max和avg的能力。 长话短说,我不得不使用max,这就是我做的方式:
将位于Click here and, once on the page, click on "AggLookup.vb"的代码复制/粘贴到“报告属性”中的“代码”部分
与任何LookUp功能一样,找到一个维度,您可以使用该维度将2个数据集锚定在一起,并允许您将目标度量重新组合在一起。在我的情况下,我去了我工作的医院名称,并将该字段插入我的Dataset1和Dataset2。这使我能够确保当我执行“最大”功能时,它认为2015XX和2016XX是一个组的一部分。最初,我没有这样做,我使用Year作为我的主持人,因此过滤掉了每年的最大值:即201513和201613。
使用此Tweeked LookUpSet公式转到过滤器并创建一个:
= code.AggLookup(“aggregation”,LookupSet([localValue],[matchValue],[returnValue],[dataset]))
确保您的汇总是小写字母(无大写字母),并用引号括起来,即“
我知道我可能花了很长时间才能得到我的结果,但是说我对SQL编码知之甚少,这是一种夸大其词。所以我采用了这个选项。