Reporting services SSRS表达式在导出到Excel时未格式化为数字

Reporting services SSRS表达式在导出到Excel时未格式化为数字,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我已经尝试了我在这里发现的一切,但我不知道我做错了什么,所以我不知道原因是否在于我的表情。我对这东西很陌生,所以不确定它是否显而易见 以下是我的表达: =IIF(Fields!Duration.Value > 0, Floor(Fields!Duration.Value / 3600) & ":" & Format(CDate(DateAdd("s", Fields!Duration.Value, "00:00")), "mm:ss"), IIF(Fields!LastTi

我已经尝试了我在这里发现的一切,但我不知道我做错了什么,所以我不知道原因是否在于我的表情。我对这东西很陌生,所以不确定它是否显而易见

以下是我的表达:

=IIF(Fields!Duration.Value > 0, Floor(Fields!Duration.Value / 3600) & ":" & Format(CDate(DateAdd("s", Fields!Duration.Value, "00:00")), "mm:ss"), IIF(Fields!LastTime.Value = Fields!FirstTime.Value, "Passing by", "Still Occupied"))
它采用两列单元格(
FirstTime
LastTime
),计算两者之间的差异,并将其转换为h:mm:ss格式。如果
第一次
最后一次
匹配,它将改为“路过”。否则,它将显示“仍被占用”

一切都很好,但如果将报告导出到Excel,则无法以任何方式合计或计算该列,我甚至无法将该列格式化为数字


你知道为什么会这样吗?谢谢大家!

无法添加这些值的原因是,您正在将它们转换为类似于时间值的文本字段

您应该将秒数添加到日期中,然后以mm:ss格式显示,而不是将秒数转换为mm:ss

如果希望能够在Excel中添加时间,则需要使用格式属性mm:ss格式化文本框,而不是使用格式函数

=IIF(Fields!Duration.Value > 0, DATEADD("s", Fields!Duration.Value, CDATE("1899-12-31")), 
 IIF(Fields!LastTime.Value = Fields!FirstTime.Value, "Passing by", "Still Occupied"))
1899年12月31日是windows日期的第0天,因此您可以一起添加时间,而无需在Excel状态栏的总和和平均值中添加天数。请注意Excel如何在公式栏中不显示日期


无法添加这些值的原因是,您正在将它们转换为类似于时间值的文本字段

您应该将秒数添加到日期中,然后以mm:ss格式显示,而不是将秒数转换为mm:ss

如果希望能够在Excel中添加时间,则需要使用格式属性mm:ss格式化文本框,而不是使用格式函数

=IIF(Fields!Duration.Value > 0, DATEADD("s", Fields!Duration.Value, CDATE("1899-12-31")), 
 IIF(Fields!LastTime.Value = Fields!FirstTime.Value, "Passing by", "Still Occupied"))
1899年12月31日是windows日期的第0天,因此您可以一起添加时间,而无需在Excel状态栏的总和和平均值中添加天数。请注意Excel如何在公式栏中不显示日期


我觉得这种格式与此有关。它部分工作,但是,现在如果时间超过1天,小时数将变为0。(例如,如果总时间为25小时31米50秒,则显示为01:31:50)这是我在格式化之前遇到的问题之一。有什么想法吗?非常感谢你!允许您使用24小时以上的Excel格式是
[h]:mm:ss
,但我还没有弄清楚如何从SSRS导出该格式。当然,您可以在以后更改Excel中的格式,但这并不理想。我觉得格式与此有关。它部分工作,但是,现在如果时间超过1天,小时数将变为0。(例如,如果总时间为25小时31米50秒,则显示为01:31:50)这是我在格式化之前遇到的问题之一。有什么想法吗?非常感谢你!允许您使用24小时以上的Excel格式是
[h]:mm:ss
,但我还没有弄清楚如何从SSRS导出该格式。当然,您可以在以后更改Excel中的格式,但这并不理想。