导出到Excel时,SSRS表达式不会格式化为数字

问题描述 投票:1回答:1

我已经尝试了我在这里找到的所有东西,但我无法弄清楚我做错了什么,所以我不知道原因在于我的表达。我对这些东西很新,所以不确定它是否显而易见。

这是我的表达:

=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"))

它需要2列的单元格(FirstTimeLastTime),计算两者之间的差异并将其放入h:mm:ss格式。如果FirstTimeLastTime匹配,它将改为“路过”。否则它将“仍然被占领”。

一切都很好但是如果报告导出到Excel,则无法以任何方式对列进行总计或计算,我甚至无法将列格式化为数字来执行此操作。

关于为什么会发生这种情况的任何想法?谢谢!

reporting-services ssrs-2008
1个回答
0
投票

您无法添加值的原因是您将它们转换为看起来像时间值的文本字段。

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

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

=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"))

12/31/1899是Windows日期的第0天,因此您可以一起添加时间,而无需在SUM和Excel状态栏中添加天数。请注意Excel如何不在公式栏中显示日期。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.