我已经尝试了我在这里找到的所有东西,但我无法弄清楚我做错了什么,所以我不知道原因在于我的表达。我对这些东西很新,所以不确定它是否显而易见。
这是我的表达:
=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列的单元格(FirstTime
和LastTime
),计算两者之间的差异并将其放入h:mm:ss格式。如果FirstTime
和LastTime
匹配,它将改为“路过”。否则它将“仍然被占领”。
一切都很好但是如果报告导出到Excel,则无法以任何方式对列进行总计或计算,我甚至无法将列格式化为数字来执行此操作。
关于为什么会发生这种情况的任何想法?谢谢!
您无法添加值的原因是您将它们转换为看起来像时间值的文本字段。
您应该将秒数添加到日期,然后以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如何不在公式栏中显示日期。