【问题标题】:How do I create a percentage field and a data bar that reflects it?如何创建百分比字段和反映它的数据栏?
【发布时间】:2022-11-03 23:57:00
【问题描述】:

正如标题所说,我在学习 Power BI Report Builder 时遇到了一些麻烦。 (我希望这是发布此问题的正确位置。如果不是,请指出我正确的方向。)

我使用汽车保险数据创建了一个示例 Power BI 报表生成器项目。基本上,我想显示一个免赔额(这是我的数据源中的一个度量,以及两个数据集中的一个相同字段),以及一个百分比(计算字段)和一个数据栏,按州和城市划分(两个字段都建进入我的数据源)。州行中的百分比列应显示数据中总免赔额的百分比来自每个州,城市行中的百分比列应显示州总免赔额的百分比来自每个城市。数据栏应反映该行中的百分比列。

这是一个视觉表示:

design mode

(为了这篇文章,Direct_Claim_Deductible_Recoverable 将被称为“免赔额”。)

我有自付额列下来。它只是从 DataSet 数据集中获取数据。底部一列是针对年份和城市的指定标准的数据总计。

Pct% 列应显示如上所述的百分比,但它只使用 Deductible 列并除以 1000。

编辑:这是 Pct% 列的表达式:

=round(((sum( 
Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value) /
Sum (Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value, 
"Percent"))*100),2)

Bar 列显示一个数据栏。在城市列中,它反映了应有的 Pct% 列。在州列中,它似乎反映了最高州总数的一部分,而不是总计。

这是另一个视觉表示:

run the report

编辑:这是我听从马克的建议时发生的事情的视觉效果: results with total column (总计列使用以下公式):

=Sum(Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value, 
"Percent")

编辑:这里有更多图片:

the value for the Pct column

the Percent dataset

And the result still looks like this

如上所述,我想在这里做两件事:

  1. 我想调整州行中的数据栏以反映总计的一部分,而不是州总计的一部分。
  2. 我想调整每行中的 Pct% 列以反映总计的百分比,而不仅仅是免赔额除以 1000。

    一旦这两个问题解决了,剩下的就应该自己解决了。

    谢谢! 乔

    注意:我不得不使用 Power BI 和 Report Builder 标签,因为这个愚蠢的网站说我没有创建新标签的声誉,但这篇文章是关于 PowerBI Report Builder 软件的。

【问题讨论】:

  • 您能否在报告中显示用于计算当前百分比的查询?了解这将是固定除以 1000,但查看 DAX 会有所帮助
  • 如果数据集的名称是Percent,那么您看起来是正确的,它将行中的数量除以整个数据集中的数量。因此,这会将城市的数量除以数据集的总数。那么这行得通吗?您是否将除以 1000 的公式更改为?
  • 我发布的公式是除以 1000。这就是我感到困惑的原因。
  • 是的,我不知道那里发生了什么,但你现在除以Sum (Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value, "Percent"),这是正确的公式。您还可以将该表达式作为一列包含在内,以测试结果是否正确。
  • 刚试过。它给了我一个列,其中包含所有年份的总数,即 99,669.71

标签: powerbi reportbuilder


【解决方案1】:

有几种方法可以做到这一点,但我会建议两种:

  1. 如果可能,请在数据集中进行计算。如果这是一个 PBI 数据集,您可以使用 Dax 在每个级别进行正确的计算。如果这是 SQL,您可以为州添加一列,为城市添加一列,然后在每个级别引用正确的计算。
  2. 假设上述操作不可行,您可以在包含多个数据集的报表中执行此操作。更完整的答案如下:

    步骤1

    对于主数据集,添加一个参数以按年份过滤数据:

    这将在报告中添加一个下拉列表:

    完成此操作后,状态计算将显示数据集过滤年份的百分比。

    第2步

    添加另一个按状态汇总数据的数据集。城市计算将需要查找此值。报告可以这样配置:

    公式将如下所示,根据实际名称进行调整。

    状态:

    =SUM(Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value)/ Sum(Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value, "Percent")
    

    城市:

    =Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value 
    / Lookup(Fields!State.Value, Fields!State.Value, Fields!Direct_Claim_Deductible_Recoverable_End_Of_Year.Value, "DataSetStateLevel")
    

【讨论】:

  • 谢谢马克的回复。 (最近几天我一直在做其他事情,所以我没有太多时间做这个项目)
  • 问题是:百分比是第二个数据集的名称。我刚刚更新了它以包含 State 字段,然后我对其进行了测试以查看它是否可以工作。不幸的是,它没有。我的 Total 列的公式是 Percent 中 Deductible 字段的总和,而 Pct 列的公式是 Dataset 中 Deductible 字段的总和,减去 Percent 中 Deductible 字段的总和,然后乘以 100 以创建一个百分比。 (我创建了 Total 列以查看 Pct 列的分母)
  • 我对您的评论有点失望,但是如果您可以用当前问题更新您的问题,那将有所帮助。通过 cmets 很难看到发生了什么。 “百分比”数据集是否聚合到州级?
  • 感谢你目前的帮助。该帖子已用图像进行了编辑。
猜你喜欢
  • 1970-01-01
  • 2020-08-03
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
相关资源
最近更新 更多