在我的表中,根据以下表达式,在20条记录中,我得到4条记录“红色”:
=Switch(DateDiff(DateInterval.Hour, Fields!SLA.Value, Now())<=72,"White",Fields!SLA.Value<now(),"Red",true,"White")
我想基于背景颜色“ RED”求和“ count_of_value”。
这就是我要尝试的。但是,它显示错误。
="The number is " & IIF("Red",Sum(Fields!count_of_value.Value, "DataSet1"),'') & "."
and
="The number is " & Sum(IIF("Red",Sum(Fields!count_of_value.Value, "DataSet1"),'')) & "."
我想实现两件事:
从第一列,我想获取颜色“ RED”的最后日期。例如,在这种情况下,2019年2月5日。
从第二列中,我想获取颜色为“红色”的数字的总和。例如,在这种情况下为214519
我在做什么?如何实现呢? 谢谢
答案 0 :(得分:1)
这里有点像XY problem。您的表达式正在根据SWITCH
语句为单元格着色。要解决求和问题,您需要使用与为单元格着色相同的条件语句。基本上,您需要的表达式应如下所示。
= SUM(IIF(Fields!SLA.Value<now(), Fields!count_of_value.Value, 0), "DataSet1")
该表达式应隔离SWITCH
用红色涂成的相同字段,对它们求和,如果不等于true,则加零。由于您对另一个答案的评论表明您收到错误提示,表明范围不足,因此您需要在SUM
函数中包含数据集名称。
关于从另一列获取最后的日期值,您应该只能够使用类似的表达式,但是使用MAX
函数。
=MAX(IIF(Fields!SLA.Value<now(), Fields!SLA.Value, Nothing), "DataSet1")
答案 1 :(得分:0)
您的IIF语句基本上只是说“如果'Red'= True”,它将始终返回false。
您需要将其与具有颜色表示的“单元格”进行比较。
如果该单元格称为myTextBox
,那么您的SUM表达式将类似于(简化)
=SUM(
IIF(ReportItems!myTextBox.Value = "Red", Fields!count_of_value.Value, 0)
)
或者,您可以在IIF语句中重复整个颜色表示。
如果这没有帮助,请编辑您的问题以显示报告设计的图像,包括任何分组和每个表达式的位置。
答案 2 :(得分:0)
也许我简化了您的问题陈述,但是我尝试在本地计算机上使用伪数据。
=DateDiff(DateInterval.Hour,Fields!SLAValue.Value,now)
新的临时列以捕获号码
=IIF(DateDiff(DateInterval.Hour,Fields!SLAValue.Value,now)<=72,0,
IIF(Fields!SLAValue.Value<now,DateDiff(DateInterval.Hour,Fields!SLAValue.Value,now),0))
现在列
=now
颜色列表达式
=IIF(DateDiff(DateInterval.Hour,Fields!SLAValue.Value,now)<=72,"White",
IIF(Fields!SLAValue.Value<now,"Red","white"))
最后一个计数值表达式
=Sum(
IIF(DateDiff(DateInterval.Hour,Fields!SLAValue.Value,now)<=72,0,
IIF(Fields!SLAValue.Value<now,DateDiff(DateInterval.Hour,Fields!SLAValue.Value,now),0)))