【问题标题】:SSRS Format to display as percentSSRS 格式显示为百分比
【发布时间】:2014-11-12 17:09:17
【问题描述】:

我已经在这里查看了很多示例,如果我问的是重复问题,我深表歉意,据我所知,我不是。

我制作了一份 SSRS 报告,其中显示了我们销售部门某些方面的总销售额。它们按“成本、​​毛利润、毛利润百分比、订单数量、总销售额”按行细分。这些列是我们销售的各个方面。网络销售、电话销售等......

在 tablix 中,我可以格式化文本框以将结果显示为数字,但正如您所见,我也有 Percentage 和 Count。我不知道如何在原始文本框格式的上下文中格式化它们。所以我知道我已经把下面的所有内容都显示为一个数字,但是我如何处理让百分比显示为百分比和计数显示为计数?

例如,当前所有百分比都显示为“$0.35”以及遵循该格式的各种其他数字。计数目前也显示为货币。

我使用了我在这里找到的一个示例,“=Iif (Me.Value = Floor (Me.Value) , "0%" , "0.00%" )”,但所做的只是让所有显示的内容在那一栏中,“0.00%”我对 SSRS 还很陌生,过去两周一直在死记硬背,但我就是找不到帮助。提前感谢您提供的任何东西。

更新:=IIF(Fields!LVS_Web.Value=0.00, "0%", format(Fields!LVS_Web.Value, "P"))

这在一定程度上有效……但现在一切都是百分比……在这里想 ELSE 但我不知道 ELSE 是如何进入的,我从未见过 ELSE 这个词。

更新 2:我注意到的是,在声明中,它说“=0.00,”0%”,这甚至并不适用。我刚刚把它放在那里,因为我是新手,我只需要一个论据。我取了 0% 并在数字

我快要疯了。

还有一个事实是,这是从存储过程中提取的信息,我对这些信息还不是很了解,我经常被分配一些简单的任务,作为学习的垫脚石。我真的不知道查询是什么,但如果我愿意,我无法编辑它。这可以通过表达式格式化来完成,但是我的表达式太宽泛了,但是我使用大于或小于得到了混合的结果,而且这可能不是最明智的使用方法,因为这些数字不是一成不变的。我的一天快结束了,我的进步非常小,但我吃了一顿丰盛的午餐。所以成功了。

所以我为这个问题提供了我自己的答案,并且它有效。谢谢我。感谢所有试图帮助我并提供帮助的人。我感谢陌生人为彼此付出的努力。

我遇到了一个新问题,我需要显示一个与所提取数据相关的时间。我可以将 NOW 放在那里并获取今天的日期,但如果有人从 FEB 提取信息,他们可能对当前日期有点反感。我可能很快就会解决这个问题,但如果有人能在此期间提供帮助,我将不胜感激。

【问题讨论】:

  • 这是一个 Excel 问题吗?还是与某些特定的编程语言有关?
  • 这适用于 Visual Studio 2008 R2 中的 SSRS 报告服务。
  • 您可能应该将问题标记为 SSRS 或更具体的内容,以便正确的受众看到它。
  • 天哪,我以为我做到了。抱歉,有点慌张,因为我知道答案可能会让我感到难堪,而且我这两天一直在想办法解决这个问题。

标签: reporting-services formatting report ssrs-2008-r2


【解决方案1】:

一个标准的原则是将数据与显示分开,因此使用Value 属性将数据存储为其本机数据类型,并使用Format 属性以您想要的方式显示它。因此,不要使用格式化Value 属性的表达式,例如=Format(Fields.SomeField.Value, "0.00%"),而是将Value 保留为=Fields!SomeField.Value,并将Format 属性设置为P2

这在将报表导出到 Excel 时尤其重要,因为如果您的数据具有正确的数据类型,它将作为正确的数据类型导出到 Excel。如果您使用Format 函数,它将导出为文本,导致排序和公式无法正常工作。

控制格式最简单的方法是使用standard numeric formats。单击要具有特定格式的单元格或单元格范围并设置Format 属性。它们是一个格式说明符字母,后跟一个可选的精度数字(小数位数)。一些有用的是:

C 货币有 2 位小数(默认)

N4 4 位小数

P0 没有小数位的百分比

点击上面的链接查看完整列表。将数字单元格格式化为数字,将百分比格式化为百分比 - 您无需尝试使一个格式字符串适合每个单元格。

这些标准数字格式也尊重区域设置。您应该将报表的 Language 属性设置为 =User!Language 以使用用户的区域设置,而不是报表服务器的。

【讨论】:

  • 这也有帮助,我将您的答案标记为答案,因为您的“鼓舞士气”在这里帮助我找到了解决方案。谢谢。
【解决方案2】:

如果数字已经是 * 100 例如。 9.5 应该显示为 9.5% 然后使用格式:

0.00\%

9.5 -> 9.5%

0.34 -> 0.34%

这样您就可以使用标准数字格式,只需将 % 添加到末尾即可。 \ 对 % 进行转义,以防止格式化 *100(这将使 9.5 显示 950%。)。

【讨论】:

  • 它在SSRS中工作,但在导出到excel时格式不保留。它将数字显示为 0.00\%
【解决方案3】:
=iif(Fields!Metric.Value = "Gross Profit %",
 Format(Fields!LVS_Web.Value,"P"),
 iif(Fields!Metric.Value = "Order Count",
 Format(Fields!LVS_Web.Value,"G4"),
  Format(Fields!LVS_Web.Value,"C")))

这就是救了我并做了我想做的事。还有一个错误,但这是我老板的错,所以现在我要嘲笑他了。谢谢大家。

【讨论】:

    【解决方案4】:

    来源:

    https://technet.microsoft.com/en-us/library/bb630415(v=sql.100).aspx

    这个用起来很简单,

    (当前范围的订单项总数之和)/(数据集的订单项总数之和)的百分比。 此值使用 FormatPercent 格式化,指定一位小数。

    ="Percentage contributing to all sales: " & FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Sales"),1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多