PowerBI需要帮助以解决自定义KPI创建的多个查询

时间:2017-05-13 05:44:25

标签: powerbi dax powerquery m

我正在研究power-bi并编写过去2个月的dax查询,并尝试创建自定义基普,就像显示不同类型数据的向上和向下箭头一样。

但面临多重问题。

我需要您提出宝贵的建议来解决这些问题。

示例数据: -

enter image description here

Q1: - 在创建自定义KPI时无法显示向上和向下箭头的图像。

KPI创建的衡量标准是,

PlanPrevMon = CALCULATE([PlanSum],PREVIOUSMONTH('Month Year'[Date]))

Measure = IF(ISBLANK([PlanSum]),"No Data Available ",[PlanSum])&" "&IF([PlanSum]=[PlanPrevMon],"",IF([PlanSum] > [PlanPrevMon],UNICHAR(8679),UNICHAR(8681))&IF([PlanSum]<=0,"",""))

这给了我完美的结果(如果有更好的方法,请建议我)。

但是当我试图显示向上和向下图像箭头而不是单焦点箭头但是它不起作用时。

措施是:

Measure = IF(ISBLANK([PlanSum]),"No Data Available ",[PlanSum])&" "&IF([PlanSum]=[PlanPrevMon],"",IF([PlanSum] > [PlanPrevMon],"https://cdn3.iconfinder.com/data/icons/musthave/48/Stock%20Index%20Up.png","https://cdn3.iconfinder.com/data/icons/musthave/48/Stock%20Index%20Down.png")&IF([PlanSum]<=0,"",""))

输出是: -

enter image description here

我认为这里的图片网址是将它作为一个字符串,以便为什么我无法获取图像

我如何获得图像箭头。还有其他方法可以做到这一点吗?

Q2: - 相同的查询但是没有使用百分比值。

enter image description here

用于计算预览月份值

测量: -

Contri Prev Mon = CALCULATE([Contri%],PREVIOUSMONTH('Month Year'[Date]))

但值会更改为十进制,如下图所示。

enter image description here

为什么我在这里得到小数值。 如果我将Contri%更改为小数并执行其余查询,如

ContriArrows = IF(ISBLANK([Contri%]),"No Data Available ",[Contri%])&" "&IF([Contri%]=[Contri Prev Mon],"",IF([Contri%] > [Contri Prev Mon],UNICHAR(8679),UNICHAR(8681))&IF([Contri%]<=0,"",""))

输出

enter image description here

很好的完美。

但与第一个问题相同,如果我包含向上和向下箭头图像的URL,则它给出与q1相同的输出(精确输出,如第二张图像所示)

那么如何以%和向上和向下箭头显示值?

Q3: - 对于这个contri%箭头kpi,我写了另一个计算列,

ContriKeys1 = SWITCH(
        TRUE(),
            [Contri Prev Mon]=BLANK(),"",
            [Contri%] <= 0,"",
            [Contri%] > [Contri Prev Mon],"https://cdn3.iconfinder.com/data/icons/musthave/48/Stock%20Index%20Up.png",
            [Contri%] < [Contri Prev Mon],"https://cdn3.iconfinder.com/data/icons/musthave/48/Stock%20Index%20Down.png",
            [Contri%] = [Contri Prev Mon],"")

但它给了我错误的箭头符号,如下图所示。

enter image description here

为什么我在这里得到那些错误的箭头符号?

任何建议都会很明显。

谢谢,

兔子。

1 个答案:

答案 0 :(得分:1)

这可能会有所帮助:我能够得到这个......

enter image description here

如果PlanSum超过PlanPrevMon,则图标箭头指向。 如果PlanSum小于PlanPrevMon,则图标箭头指向下方。

正如名称所示,LastIcon箭头就是最后一个Icon箭头。 (我只是为了洞察而把它包括在内......我知道你实际上并不想那样表现出来。)

卡上的箭头也是LastIcon。

以下是我如何做到的(从我之前的回答中找到):

  1. 我添加了一个名为Icon的列。

    gzip -dc database_dump.sql.gz | mysql -uusername -ppassword
    
  2. 我添加了一个名为Last Icon的列。

    Icon = if([PlanSum]>Sheet1[PlanPrevMon],"https://cdn3.iconfinder.com/data/icons/musthave/48/Stock%20Index%20Up.png",if(Sheet1[PlanSum]<Sheet1[PlanPrevMon],"https://cdn3.iconfinder.com/data/icons/musthave/48/Stock%20Index%20Down.png",""))
    
  3. 我将数据类别更改为图片网址。 &lt; =这很重要! enter image description here

  4. 我将Icon和LastIcon列添加到视觉表中。

  5. 我添加了另一个表格,其中只包含LastIcon。

    • 然后我格式化了该表以隐藏列标题和标题&#39; s 下划线。
    • 然后我把那张桌子从早些时候移到了卡片上。