【问题标题】:Power BI If Blank Then Put ValuePower BI 如果为空,则输入值
【发布时间】:2019-09-10 22:39:51
【问题描述】:

这个 sn-p 显示我们正在查看的图表,它有空白。我们想要显示这些值是什么,而不是那些日期和 ID 的空白;但是,每个 ID 或日期的值(速率)可能不同。 (这可能在极少数情况下发生。)

此 sn-p 显示从 excel 提取到 Power BI 的数据(仅示例数据)。请注意,所有日期都是按顺序排列的,但请注意某些 ID 没有特定日期的条目。

我希望能够说 IF(此日期的 ID 为空白,然后输入附加到此 ID 的 Value(Rate))。

这在 Power BI 中可能无法做到。我们有一个包含类似数据的 Excel 电子表格,可以做我们想做的事情,但我们想通过使用 Power BI 来实现自动化。

有什么想法吗?

更新

不过,我已经采取了有利于我的措施;我需要得到衡量的总和:价值或比率衡量。我确实有价值或比率 - 如果我可以做与价值或比率衡量相同的事情,那么视觉总计会很棒。

请查看下面更新的屏幕截图。

Visual with fields Relationships

【问题讨论】:

    标签: powerbi


    【解决方案1】:

    作为衡量标准,您可以执行以下操作。我假设您的模型如下:

    • 事实:(日期、ID、值)
    • DimDate:(日期,...)
    • 费率:(ID,费率)
    • 暗淡:(ID,...)

    使用这些表,您将拥有如下关系:

    • 暗淡 -1:N-> 事实
    • 暗淡 费率
    • DimDate -1:N-> 事实

    使用上面的模型,您可以构建以下视觉效果:

    • 行:DimDate[Date]
    • 列:暗淡[ID]
    • 值:[值或比率度量]
    Value = SUM ( 'Fact'[Value] )
    
    Rate = SUM ( 'Rates'[Rate] )
    
    Value Or Rate Measure =
    VAR Value = [Value]
    RETURN
      IF ( ISBLANK ( Value ), [Rate], Value )
    

    这可能无法满足您对总计的要求 - 您没有指定。因此,如果您需要视觉总计,您可以尝试以下方法:

    Value or Rate - visual totals =
    SUMX (
      CROSSJOIN ( VALUES ( 'Dim'[ID] ), VALUES ( 'DimDate'[Date] ) ),
      [Value Or Rate Measure]
    )
    

    您也可以在 Power Query M 中处理此问题,假设您拥有与我上面描述的相同的表。我假设每个表都有一个同名的关联查询。

    let
        Source = Table.AddColumn(Dim, "Date", each DimDate[Date]),
        #"Expanded Date" = Table.ExpandListColumn(Source, "Date"),
        #"Merged Queries" = Table.NestedJoin(#"Expanded Date", {"id", "Date"}, Fact, {"ID", "Date"}, "Fact", JoinKind.LeftOuter),
        #"Expanded Fact" = Table.ExpandTableColumn(#"Merged Queries", "Fact", {"Value"}, {"Value"}),
        #"Merged Queries1" = Table.NestedJoin(#"Expanded Fact", {"id"}, Rates, {"ID"}, "Rates", JoinKind.LeftOuter),
        #"Expanded Rates" = Table.ExpandTableColumn(#"Merged Queries1", "Rates", {"Rate"}, {"Rate"}),
        #"Added Custom" = Table.AddColumn(#"Expanded Rates", "Value Or Rate", each if [Value] = null then [Rate] else [Value]),
        #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Value", "Rate"})
    in
        #"Removed Columns"
    

    在这里,我们正在做类似的事情,但在表格级别,而不是作为衡量标准。我们交叉连接 Dim[ID] 和 DimDate[Date] 以获得所有日期和 ID 组合的密集表。然后我们离开加入原始 Fact 表和 Rates 表。然后我们添加一列,如果存在则采用 [Value],如果 [Value] 为 null,则采用 [Rate]。

    【讨论】:

    • greggyb,我试了一下,但它仍然给了我一个空白的结果,但总数工作完美。这是朝着正确方向迈出的一步。似乎当您使用 if 语句时: Var Value = [value] IF(ISBLANK(value), [value], value) 它只会给出空白,因为两者的值是相同的。我不确定 Power BI 是否无法做到这一点,或者我只是不了解 IF Stamets。谢谢,
    • 不是IF ( ISBLANK ( Value ), [Value], Value )。这是IF ( ISBLANK ( Value ), [Rate], Value )。您需要有一个度量 [Rate] 来返回给定 ID 的比率。请对您的原始问题进行编辑,添加您编写的新代码,以及您正在使用的模型关系的屏幕截图,以及其他数据表的示例。
    • greggyb,我已经更新了帖子的主要目标。有没有办法获得价值或比率度量的总和?
    • 如果你把它放在视觉上,你的费率衡量回报是多少?
    • i.stack.imgur.com/k3DdZ.png 如果您在帖子中看到上面的图片链接或命名为:Visual with fields。这就是它的返回方式。只有当值字段有值时,总度量才会返回,如果没有,则返回空白。如果值字段为空,我需要它返回一个费率,然后在视觉对象底部汇总费率。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2017-12-25
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多