问题 数字字段在Excel,SSRS中显示为文本


我的SSRS报告其中一个字段正在使用此表达式,其中字段是数字字段。我想看空白字段是值 0

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value ,"")

Excel导出版本将此字段视为文本而非数字。

从SSRS方面有没有其他方法可以做到这一点?


9389
2018-03-13 17:53


起源



答案:


我有这个问题。有些单元格是文本和其他数字 - 都具有相同的格式字符串。分辨率是将您的单元格表达式乘以1.000(1不起作用!) - 这会强制SSRS将单元格格式化为数字。例如; (你的表达方式)* 1.000


10
2018-06-04 02:28



解决问题的简单快速计算,谢谢! - Volvox
谢谢你的帮助......它对我有用...... - V A


答案:


我有这个问题。有些单元格是文本和其他数字 - 都具有相同的格式字符串。分辨率是将您的单元格表达式乘以1.000(1不起作用!) - 这会强制SSRS将单元格格式化为数字。例如; (你的表达方式)* 1.000


10
2018-06-04 02:28



解决问题的简单快速计算,谢谢! - Volvox
谢谢你的帮助......它对我有用...... - V A


Excel将此字段识别为文本,因为只要字段为0,您就输出一个空字符串。

你可以尝试这个,输出一个空值而不是一个空字符串:

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value,  Nothing)

但是,这并不能保证工作,因为我似乎记得Excel假定该字段是第一个数据行中的任何类型。


3
2018-03-18 15:55



我有同样的问题。这对我有用,谢谢! - Paul Anderson


我在excel导出中遇到了这个问题,并用整数的CLng和小数的CDbl函数解决了它。

= CLng函数(领域!Qty.Value)

这可以保证excel单元格是数字的并且比Fields更清晰!Qty.Value * 1.000


1
2018-06-22 22:07





问题是你的IIF语句以空结束 ,“”。如果将其更改为零,它将按预期工作:

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, 0)

代替...

=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, "")

0
2017-08-01 13:42





以下是针对3种不同毛刺的3种不同解决方案:
价值1

1234
 空白细胞
 1234

解决方案2

=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), " ")


价值2

1234
 空值
 345
 空值

解决方案2

=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), "NULL")


价值3

1234
 空值
 345
 N / A
 550
 TBA
 440
 599
 不   适用

解决方案3

=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), Fields!TEST.Value.ToString()),

-1
2018-02-07 14:15



目前尚不清楚这些“价值观”如何回答这个问题。 - Eric Hauenstein
您可以假设“值”为AS列名,其余为列中的值 - sanjeev Kr sharma