【问题标题】:Power BI first IF-Statement then the DAX-FormulaPower BI 先是 IF 语句,然后是 DAX 公式
【发布时间】:2020-11-09 22:16:00
【问题描述】:

我是 Power BI 新手,遇到以下问题:

我试图建立一个频率计数器的公式。我从网上得到了一些例子,我能够建立这个工作公式。其基本思想是使用以下值对项目进行分类:每天、每周或第一次。

我尝试在公式中添加一个 IF 语句,即检查计算列“时间范围”,它以分钟为单位显示项目的持续时间。

基本上,只有当“时间范围”列等于或大于1时,它才应该运行此公式。

现在公式给出时间范围为 0 的项目,即第一次的值。但它们应该被忽略或空白。

Calculated column = 
Var freqcount =
COUNTAX(FILTER(ALL('Count'),
AND([Date]>=DATEADD('Count'[Date],-6,DAY)&&[Date]<=EARLIER([Date]),[ID]=EARLIER('Count'[ID]))),ID]) 
return
if(freqcount>=4,"Daily",if(freqcount>=2,"Weekly",if(freqcount>=1,"First time","Inactive")))

如果有人能在这个问题上支持我,我将不胜感激。

编辑:一个 ID 可以在我的表中出现多次,但日期不同。但只有一次具有相同的日期。例如:

  1. ID 1,日期 01.01.2020
  2. ID 1,日期 02.01.2020
  3. ID 1,日期 03.01.2020

【问题讨论】:

    标签: excel if-statement powerbi dax powerbi-desktop


    【解决方案1】:

    使用计算更容易:

    Calculated column =
        var rDate = yourTable[Date]
        var rID = yourTable[ID]
        var freqCount = CALCULATE(yourTable('Count'), FILTER(yourTable, rDate >= DATEADD(yourTable[Date], -6 , DAY) && rID = yourTable[ID] && yourTable['Time frame'] > 0))
    return if(freqcount>=4,"Daily",if(freqcount>=2,"Weekly",if(freqcount>=1,"First time","Inactive")))
    

    您会看到我是如何简单地将时间范围添加到表达式中的。此外,我通过使用 var's 删除了之前的使用,因此它更具可读性。

    【讨论】:

    • 感谢您的回答!我在公式的以下部分出现错误:var freqCount = CALCULATE(COUNT('Count') - 我用我的表名替换了计数,它说:参数类型不正确。如果我用 'Count'[ID] 替换它,它会说:传递给 FILTER 函数的参数太少。第二个错误:FILTER(rDate &gt;= DATEADD('Count'[Date], -6 , DAY) &amp;&amp; rID = 'Count'[ID] &amp;&amp; 'Count'[Time Frame] &gt; 0)) 也是同样的错误。 Power BI 显示: COUNT 函数仅接受列引用作为参数。你有解决这些错误的办法吗?
    • 我应该补充一点,一个 ID 可以在我的表中出现多次,但日期不同。例如:ID 1,日期 01.01.2020 - ID 1,日期 02.01.2020。但只有一次具有相同的日期。我会更新我的帖子。
    • 你是对的,我修正了答案(这台机器上没有 PowerBi)。我错过了过滤表作为过滤器的第一个参数..
    • 根据您对 ID 的评论,这就是我们过滤 ID 的原因
    • 感谢奥尔德特的回答。该公式现在正在起作用。但我现在对我从中获得的一些价值观提出了另一个问题。例如,我有 3 行 ID 为 1,它发生在日期 04.01.2020、06.01 和 07.01。日期 06 和 07 的“时间范围”为 0。日期 04.01 有 250。因此,我得到日期 04.01 的值“第一次”,而其他两个日期的值也相同“第一次”。因此,对于 0 的“时间范围”,“第一次”值是错误的。其他行也是如此。也许您知道解决此问题的方法?
    猜你喜欢
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多