我有矩阵报告,可以动态生成我的列。现在该列之一具有所有整数数据,因此我想将其转换为Integer类型。现在,我尝试了以下表达式:
=IIF(IsNumeric(Fields!Answer.Value),CInt(Fields!Answer.Value),Fields!Answer.Value)
但是这给了我一些列错误,其中某些行数据仅包含整数,而其他行包含mix。所以我尝试了以下表达式,但还是没有运气!
=IIF(Fields!Question.Value = "Amount:", CInt(Fields!Answer.Value), Fields!Answer.Value)
因此,基本上只有Amount:
列具有真实的整数值,而所有其他列具有所有文本或文本与整数数据的混合。因此,对于所有数据都为文本和整数的列,我得到了错误。
样本数据:
+------+--------------+-----------+
|Name: |Phone Number: |Emp Number |
+------+--------------+-----------+
|Alice |123-456-7890 | 123 |
|Bob |2345678901 | 12345 |
+------+--------------+-----------+
在上面的示例数据中,Amount:包含所有整数值,而Name是所有文本,电话号码是text和整数。使用IIF(...)表达式可获得以下结果。
结果:
+--------+--------------+-----------+
|Name: |Phone Number: |Emp Number |
+--------+--------------+-----------+
|#Error |#Error | 123 |
|#Error |2345678901 | 12345 |
+--------+--------------+-----------+
答案 0 :(得分:1)
从this参考文章中找出解决方案。
=IIF(IsNumeric(Fields!Answer_Question.Value), CLng(Val(Fields!Answer_Text.Value)), Fields!Answer_Text.Value)
我使用CLng()
代替了CInt()
,因为Phone Number
列字段的值很长。