#sql #excel #reporting-services
#sql #excel #службы отчетов
Вопрос:
Использование SSRS
Все остальные вопросы заключаются в том, как заставить число отображаться как число вместо текста при экспорте в Excel
Между тем я хочу принудительно отображать число в виде текста, чтобы Excel не превращал число 6158.30 в 6158.285, что вызывает у меня проблемы с округлением.
Мой SQL использует приведение к 2 десятичным CAST(ROUND(Net, 2) AS decimal(18,2))
знакам, в Excel оно отображается как 6158,30, но при нажатии на ячейку отображается 6158,285.
Я пытался объединить ‘ значение, но он экспортирует данные как ‘значение и НЕ заставляет ячейку отображаться как текстовые данные.
Комментарии:
1. Я думаю, ваш вопрос должен быть «почему мой запрос не округляет мой результат». Вы видите 6158.285, если запустите конструктор запросов отчета?
2. Базовый запрос / набор данных извлекает данные в виде ПРИВЕДЕНИЯ (ROUND(Net, 2) КАК десятичное (18,2)), но поскольку мне нужно умножить результат на 148,5, результат получается с точностью до 3 знаков после запятой. Я использую SSRS для отображения числа с точностью до 2 знаков после запятой, но когда оно экспортируется в Excel, оно сохраняет 3 десятичных знака, а затем вычисления неверны.
Ответ №1:
Я не думаю, что имеет смысл пытаться превратить число в текст, когда все, что вы пытаетесь сделать, это запретить отображение числа с более чем 2 десятичными знаками в Excel.
Судя по описанному вами поведению, для текстового поля это звучит так, что в настоящее время вы используете выражение SSRS, например:
=Fields!Net.Value * 148.5
и использует свойство Format текстового поля для отображения с точностью до 2 знаков после запятой.
Вместо этого для выражения SSRS попробуйте:
=Round(Fields!Net.Value * 148.5, 2)
Нет необходимости устанавливать свойство Формат текстового поля (если вы не хотите использовать запятые и т. Д.).
Затем этот столбец текстового поля должен оставаться числом с точностью до 2 знаков после запятой, когда отчет создается в Excel и выбрана ячейка.
Комментарии:
1. Спасибо, хотя я не использовал вашу формулу, это была почти та же концепция. Я использовал SQL для приведения результирующего вычисления.