SSRS格式显示为百分比

10

我看了这里的很多例子,如果我的问题是重复的,请原谅,据我所知,它并不重复。

我制作了一个 SSRS 报表,显示我们销售部门特定方面的总销售额。它们按“成本、毛利、毛利率、订单数、总销售额”分行排列。列是我们的销售方面。网络销售、电话销售等...

在表格中,我可以将文本框格式化为数字来显示结果,但是如您所见,我还有百分比和计数。我不知道如何在原始文本框格式的上下文中对其进行格式化。因此,我知道已经以数字形式显示了所有内容,但是如何处理百分比以显示百分比,计数以显示计数?

例如,所有百分比当前都显示为“$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 这个单词。

更新2:我注意到的是,在语句中,当它说“=0.00,“0%”时,实际上并不适用。我只是把它放在那里,因为我还不熟悉这个,并且我只需要一个涉及的参数。在条件为小于.99的数字下,我将0%更改为N,希望我能捕获所有小于1的小数。比如“$.23”,后来变成了23.45%,所以我可以这样做,但我不理解的是它使其他所有东西都成为“N”,而不是一个数字。为什么?这并不会使其他一切都成为“P”?
我快要疯了。
此外,这是从存储过程中获取的信息,我对这些并不太了解,我经常被分配简单的任务作为学习的踏脚石。我真的不知道查询是什么,但如果我想要编辑它,我也无法编辑它。这可以通过表达式格式化来完成,但我的表达式太广泛,但是使用大于或小于得到混合结果可能不是最明智的选择,因为这些数字并不是固定的。我的一天即将结束,进展非常非常小,但我吃了一顿好午餐。所以成功了。
所以我自己为这个问题提供了答案,它有效。感谢我。感谢所有试图帮助我并确实帮助我的人。我感激陌生人为彼此付出的努力。
我遇到了一个新问题,我需要显示与所提取数据相关的时间。我可以将NOW放在那里并获取今天的日期,但如果有人从2月提取信息,则可能会对当前日期感到不适。我很快就能解决这个问题,但如果有人可以在此期间帮助,我将不胜感激。

这是一个关于Excel的问题吗?还是与某种特定的编程语言有关? - Darius X.
这是针对Visual Studio 2008 R2中的SSRS报告服务。 - Hinarf
你应该将问题标记为SSRS或更具体的内容,以便正确的受众看到它。 - Darius X.
哦,天啊,我以为我已经做了。抱歉,我有点慌乱,因为我知道答案可能会让我感到尴尬,而且我已经试图解决这个问题两天了。 - Hinarf
4个回答

24
一个标准的原则是将数据与显示分离,因此使用 Value 属性以其本机数据类型存储数据,并使用 Format 属性以所需格式显示它。因此,不要使用表达式格式化 Value 属性,例如 =Format(Fields.SomeField.Value, "0.00%"),而应将 Value 保留为 =Fields!SomeField.Value,并设置 Format 属性为 P2
这在导出报表到 Excel 时尤为重要,因为如果您的数据具有正确的数据类型,它将作为正确的数据类型导出到 Excel 中。如果使用 Format 函数,则会导出为文本,使排序和公式无法正常工作。
控制格式最简单的方法是使用标准数字格式。单击要设置特定格式的单元格或单元格范围,然后设置 Format 属性。它们是格式说明符字母,后跟一个可选的精度数字(小数位数)。其中一些有用的格式如下: C:货币,保留两位小数(默认)。 N4:数字,保留四位小数。 P0:百分数,没有小数位。
单击上面的链接以获取完整列表。将数字单元格格式设置为数字,将百分比格式设置为百分比 - 您无需尝试使一个格式字符串适合每个单元格。
这些标准数字格式也遵守区域设置。您应该将报表的 Language 属性设置为 =User!Language,以使用用户的区域设置而不是报表服务器的设置。

这也有所帮助,我将您的回答标记为答案,因为您在这里的“鼓励”帮助我找到了解决方案。谢谢。 - Hinarf

13

如果数字已经乘以100,例如9.5应显示为9.5%,则使用以下格式:

0.00\%

9.5 -> 9.5%

0.34 -> 0.34%

这样您就可以使用标准的数字格式,只需在末尾添加 % 即可。 \ 转义了%,防止在格式化时*100(这会使9.5显示为950%)。


它在SSRS中可以工作,但是当导出到Excel时,格式没有被保留。它会将数字显示为0.00%。 - rjose

5
=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")))

这是救了我并且做到了我想要的结果。还有一个错误,但那是我的老板的错,所以现在我可以嘲笑他。谢谢大家。


0

源代码:

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接