运行值的 SSRS 出现次数
SSRS number of occurences for runningvalue
我正在尝试创建 ABC / Pareto 分析。目的是标记 'A' 产生总销售额 80% 的所有产品,'B' 产生额外 15% 的产品和 'C' 其余的产品。最多需要考虑 10 万种产品,计算总数 运行 最快的方法是使用 Report Builder / Paginated Reports 中的 RunningValue。
我在将数据下载到数据集时通过计算 运行 总数进行了一些测试,但它非常慢,因此不是一个选项。另一方面,RunningValue 工作得很好,我可以在 Tablix 中用 'A'、'B' 和 'C' 标记产品。这是公式:
=IIF(RunningValue(Fields!ACT.Value, Sum, Nothing ) / Sum(Fields!ACT.Value, "Facts")<0.8, "A", IIF(RunningValue(Fields!ACT.Value, Sum, Nothing ) / Sum(Fields!ACT.Value, "Facts")<0.95,"B","C"))
但是,我找不到如何计算 A、B 和 C 的产品数量的方法。想法是表明 X% 的产品创造了总销售额的 80%,Y% 额外创造了 15% 和Z% 仅产生 5% 的营业额。
如果有任何建议,我将不胜感激,我 运行 别无选择。原始数据源是 Power BI 数据集,计算 运行 总数,同时下载数据对于这个数量的产品来说真的很慢。已使用 MDX 和 DAX 进行测试。
您可以使用自定义代码进行帕累托计数计算。
将以下代码添加到您的报告中
Public Dim a_count, b_count, c_count As Integer
Public Function Pareto( current As Integer, total As Integer) As String
If current / total < 0.8 Then
a_count = a_count + 1
Return "A"
ElseIf current / total < 0.95 Then
b_count = b_count + 1
Return "B"
Else
c_count = c_count + 1
Return "C"
End If
End Function
对于您的父分类列,使用表达式
= Code.Pareto( RunningValue(Fields!ACT.Value, Sum, Nothing ) , Sum(Fields!ACT.Value, "Facts"))
要显示计数器变量,请使用表达式
= Code.a_count
= Code.b_count
= Code.c_count
我正在尝试创建 ABC / Pareto 分析。目的是标记 'A' 产生总销售额 80% 的所有产品,'B' 产生额外 15% 的产品和 'C' 其余的产品。最多需要考虑 10 万种产品,计算总数 运行 最快的方法是使用 Report Builder / Paginated Reports 中的 RunningValue。
我在将数据下载到数据集时通过计算 运行 总数进行了一些测试,但它非常慢,因此不是一个选项。另一方面,RunningValue 工作得很好,我可以在 Tablix 中用 'A'、'B' 和 'C' 标记产品。这是公式:
=IIF(RunningValue(Fields!ACT.Value, Sum, Nothing ) / Sum(Fields!ACT.Value, "Facts")<0.8, "A", IIF(RunningValue(Fields!ACT.Value, Sum, Nothing ) / Sum(Fields!ACT.Value, "Facts")<0.95,"B","C"))
但是,我找不到如何计算 A、B 和 C 的产品数量的方法。想法是表明 X% 的产品创造了总销售额的 80%,Y% 额外创造了 15% 和Z% 仅产生 5% 的营业额。
如果有任何建议,我将不胜感激,我 运行 别无选择。原始数据源是 Power BI 数据集,计算 运行 总数,同时下载数据对于这个数量的产品来说真的很慢。已使用 MDX 和 DAX 进行测试。
您可以使用自定义代码进行帕累托计数计算。
将以下代码添加到您的报告中
Public Dim a_count, b_count, c_count As Integer
Public Function Pareto( current As Integer, total As Integer) As String
If current / total < 0.8 Then
a_count = a_count + 1
Return "A"
ElseIf current / total < 0.95 Then
b_count = b_count + 1
Return "B"
Else
c_count = c_count + 1
Return "C"
End If
End Function
对于您的父分类列,使用表达式
= Code.Pareto( RunningValue(Fields!ACT.Value, Sum, Nothing ) , Sum(Fields!ACT.Value, "Facts"))
要显示计数器变量,请使用表达式
= Code.a_count
= Code.b_count
= Code.c_count