首页 文章

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

提问于
浏览
11

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

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

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

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

5 回答

  • 0

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

  • -1

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

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

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

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

  • 1

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

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

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

  • 10

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

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

    代替...

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

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

    1234空白单元格1234

    解决方案2

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

    Value 2

    1234 Null 345 null

    解决方案2

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

    Value 3

    1234 Null 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()),
    

相关问题