Числовое поле получилось как текст в Excel, SSRS
В моих отчетах SSRS одно из полей использует это выражение, где поле является числовым полем. Я хочу видеть пустое поле, если значение 0
.
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value ,"")
В экспортированной версии Excel это поле считается текстом, а не числом.
Есть ли другой способ сделать это со стороны SSRS?
Ответы
Ответ 1
У меня была эта проблема. Некоторые ячейки будут текстовыми и другими номерами - все с одинаковой строкой форматирования. Разрешение заключается в умножении выражения ячеек на 1.000 (1 не работает!) - это заставляет SSRS форматировать ячейку как число. например; (ваше выражение здесь) * 1.000
Ответ 2
Excel распознает это поле как текст, потому что вы выводите пустую строку всякий раз, когда поле равно 0.
Вы можете попробовать это, чтобы вывести нулевое значение вместо пустой строки:
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, Nothing)
Это не гарантирует работу, однако, поскольку я, кажется, помню, что Excel предполагает, что поле является типом того, что находится в первой строке данных.
Ответ 3
У меня была эта проблема в экспорте excel и она была решена с помощью CLng для целых чисел и функции CDbl для десятичных знаков.
= CLng (Fields! Qty.Value)
Это гарантирует, что ячейка excel будет числовой и чище, чем поля! Qty.Value * 1.000
Ответ 4
Проблема в том, что ваш оператор IIF заканчивается пустой строкой, "". Если вы измените это значение на ноль, оно будет работать как положено:
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, 0)
Вместо...
=IIf(Fields!PERIOD02_VALUE.Value <> 0,Fields!PERIOD02_VALUE.Value, "")
Ответ 5
Ниже приведены 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
Null
345
null
Решение 2
=IIF(IsNumeric(Fields!TEST.Value.ToString()), CDBL(IIF(IsNumeric(Fields!TEST.Value.ToString()), Fields!TEST.Value.ToString(), "0")), "NULL")
Значение 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()),