SSRS 将来自不同范围的总和 Returns 0
SSRS Divide Sums from Different Scopes Returns 0
我有一个分组数据集。从父组向下,组名是:
公司 > 工厂 > 详情。最后,我希望能够获取每个工厂的销售额,并查看其占整个公司销售额的百分比。假设该公司的总销售额为 500 美元,“工厂 A”的销售额为 100 美元,“工厂 B”的销售额为 400 美元。我会想象我需要在 Plant 分组级别的表达式,例如:
=Sum(Sales)/Sum(Sales, "Company")
我会为工厂 A 获得 .2,为工厂 B 获得 .8。但如果我这样做,我会得到 0。我完全不知所措。如有任何帮助,我们将不胜感激。
附加信息:
我的确切设置比我在下面给出的示例稍微复杂一些,但我相信总体思路仍然相同。我共有6组:
圆圈组相当于我例子中的“植物”组。这是我的 Tablix 中 GroupBy 组的行组(箭头指向它的行组)。
上图中圈出的表达式就是要获取我的百分比的表达式(现在实际上只是一个小数,尚未格式化为百分比)。
=sum(Fields!ActualCurrent.Value)/sum(Fields!ActualCurrent.Value, "Company")
Fields!ActualCurrent.Value 相当于我上面示例中的“Sales”。以上表达式 returns 0 为所有组。但是,如果我将其更改为
=sum(Fields!ActualCurrent.Value)+sum(Fields!ActualCurrent.Value, "Company")
“A 厂”的产量相当于 600 美元,“B 厂”的产量相当于 900 美元。
我似乎无法找到它在将两个总和相加时如何按预期做出反应,但在我将它们相除时产生 0。
查看您在何处使用该表达式来确定此处的错误会很有用,但我认为您可以使用本指南获得所需的结果。
像这样创建一个 tablix:
请注意,我已将 Company
和 Plant
字段添加为组。我也删除了细节组。右键单击详细信息和 select Delete group
并设置仅删除组选项。
现在在百分比列中使用以下表达式:
=FORMAT(
SUM(Fields!Sales.Value,"Plant")/SUM(Fields!Sales.Value,"Company")
,"P2"
)
每个计划的总和除以整个公司集团的总和。这不是必需的,但我正在使用 FORMAT
函数将表达式返回的浮点值格式化为使用两位小数的百分比格式。
它应该显示如下内容:
更新: 尝试将总和范围限定到您的特定组:GroupBy
=sum(Fields!ActualCurrent.Value, "GroupBy")/sum(Fields!ActualCurrent.Value, "Company")
更新 2: 格式化单元格以显示小数位。
使用这个表达式:
=FORMAT(
sum(Fields!ActualCurrent.Value, "GroupBy")/sum(Fields!ActualCurrent.Value, "Company"),
"F2"
)
它将表达式返回的值格式化为具有两位小数的浮点数。
如果要以百分比格式显示值,请在 P2
的表达式中替换 F2
(具有两位小数的百分比格式。)
如果有帮助请告诉我。
我有一个分组数据集。从父组向下,组名是: 公司 > 工厂 > 详情。最后,我希望能够获取每个工厂的销售额,并查看其占整个公司销售额的百分比。假设该公司的总销售额为 500 美元,“工厂 A”的销售额为 100 美元,“工厂 B”的销售额为 400 美元。我会想象我需要在 Plant 分组级别的表达式,例如:
=Sum(Sales)/Sum(Sales, "Company")
我会为工厂 A 获得 .2,为工厂 B 获得 .8。但如果我这样做,我会得到 0。我完全不知所措。如有任何帮助,我们将不胜感激。
附加信息:
我的确切设置比我在下面给出的示例稍微复杂一些,但我相信总体思路仍然相同。我共有6组:
圆圈组相当于我例子中的“植物”组。这是我的 Tablix 中 GroupBy 组的行组(箭头指向它的行组)。
上图中圈出的表达式就是要获取我的百分比的表达式(现在实际上只是一个小数,尚未格式化为百分比)。
=sum(Fields!ActualCurrent.Value)/sum(Fields!ActualCurrent.Value, "Company")
Fields!ActualCurrent.Value 相当于我上面示例中的“Sales”。以上表达式 returns 0 为所有组。但是,如果我将其更改为
=sum(Fields!ActualCurrent.Value)+sum(Fields!ActualCurrent.Value, "Company")
“A 厂”的产量相当于 600 美元,“B 厂”的产量相当于 900 美元。
我似乎无法找到它在将两个总和相加时如何按预期做出反应,但在我将它们相除时产生 0。
查看您在何处使用该表达式来确定此处的错误会很有用,但我认为您可以使用本指南获得所需的结果。
像这样创建一个 tablix:
请注意,我已将 Company
和 Plant
字段添加为组。我也删除了细节组。右键单击详细信息和 select Delete group
并设置仅删除组选项。
现在在百分比列中使用以下表达式:
=FORMAT(
SUM(Fields!Sales.Value,"Plant")/SUM(Fields!Sales.Value,"Company")
,"P2"
)
每个计划的总和除以整个公司集团的总和。这不是必需的,但我正在使用 FORMAT
函数将表达式返回的浮点值格式化为使用两位小数的百分比格式。
它应该显示如下内容:
更新: 尝试将总和范围限定到您的特定组:GroupBy
=sum(Fields!ActualCurrent.Value, "GroupBy")/sum(Fields!ActualCurrent.Value, "Company")
更新 2: 格式化单元格以显示小数位。
使用这个表达式:
=FORMAT(
sum(Fields!ActualCurrent.Value, "GroupBy")/sum(Fields!ActualCurrent.Value, "Company"),
"F2"
)
它将表达式返回的值格式化为具有两位小数的浮点数。
如果要以百分比格式显示值,请在 P2
的表达式中替换 F2
(具有两位小数的百分比格式。)
如果有帮助请告诉我。