现在给大家带来的是如何用DAX实现查看每个月中不同类别的排名前一位,最终完成效果如下!!!

首先我们需要两张简单的表

基数表

和类别表

当我们创建好表之后,我们再创建一个表格,然后我们将类别表里的列值类别放进去就得到这样一个效果

得到一个这样的效果后我们需要建立一个这样的度量值

为了方便你们可以复制我下面的代码就可以直接使用了

本月第一 = var  month=IF(SELECTEDVALUE('基数表'[月份])=BLANK(),0,SELECTEDVALUE('基数表'[月份])) var  monthNO1=  IF(HASONEVALUE('类别表'[类别]),SWITCH(VALUES('类别表'[类别]),"销售额",CALCULATE(VALUES('基数表'[姓名]),FILTER(TOPN(1,'基数表','基数表'[销售额],DESC),'基数表'[月份]=month||month=0)),"销售数量",CALCULATE(VALUES('基数表'[姓名]),FILTER(TOPN(1,'基数表','基数表'[销售数量],DESC),'基数表'[月份]=month||month=0)),"销售利润",CALCULATE(VALUES('基数表'[姓名]),FILTER(TOPN(1,'基数表','基数表'[销售利润],DESC),'基数表'[月份]=month||month=0))),TRUE()) return  monthNO1

然后我们将上面的度量值放进表格中就可以得到我所展现的效果了

接下来为大家带来一个简单的SVG图形案例

最终效果图如下:

首先我们先创建一张表

在创建SVG图像度量值之前我们先要创建三个接下来要使用的度量值:

  • 实际值 = SELECTEDVALUE('SVG案例'[实际完成度],0)

  • 满完成度 = SELECTEDVALUE('SVG案例'[完成度],0)

  • 目标值 = SELECTEDVALUE('SVG案例'[合格完成度],0)

然后我们在开始创建SVG图像度量值

为了方便你们可以直接将我的度量值复制过去就可以使用了

SVG KPI =

VAR MainValue = 'SVG案例'[实际值]

VAR GoalValue = 'SVG案例'[目标值]

VAR MaxValue = 'SVG案例'[满完成度]

VAR GoalTxt = "目标"

VAR ColorGood= "Green"

VAR ColorBad ="Red"

VAR GoalColor = "Orange"

VAR KPIColor = if(GoalValue<=MainValue,ColorGood,ColorBad)

VAR ValuePos = MainValue/MaxValue*100

VAR GoalPos = GoalValue/MaxValue*100

VAR PicHigh = "130"

VAR PicWidth ="130"

VAR SvgC =

"

<text x='0' y='25' font-size='25' fill='"&KPIColor&"'>"&MainValue&"</text>

<text x='0' y='55' font-size='15' fill='Orange'>"&GoalTxt&" "&GoalValue&"</text>

<rect x='0' y='70' rx='0,5' ry='20' width='100%' height='25'

style='fill:white;stroke:black' />

<rect x='0' y='70' rx='0,5' ry='20' width='"&ValuePos&"%' height='25'

style='fill:"&KPIColor&";stroke:black' />

<line x1='"&GoalPos&"%' y1='65' x2='"&GoalPos&"%' y2='200' style='stroke:"&GoalColor&";stroke-width:3' />

"

VAR Cd1=

"data:image/svg+xml;charset=utf-8," &

"<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px'

width='"&PicWidth&"'

height='"&PicHigh&"'

viewBox = '0 0 100 100'> "

VAR Cd2 = " </svg>"

RETURN

Cd1&SvgC&Cd2

好了,今天的分享就告一段落,希望大家都变成大神!!!


1.Power BI免费下载:http://www.yeacer.com/

Microsoft Power BI Desktop中文最新版:下载地址

2.欢迎加入的Power BI技术群,目前正在学习阶段,有兴趣的朋友可以一起学习讨论。

Power Data技术交流群:702966126 (验证注明:博客园Power BI)

更多精彩内容请关注微信公众号:悦策PowerBI


如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,作者博客:https://www.cnblogs.com/yeacer/ 

如何用DAX实现查看每个月中不同类别排名前一位,以及一个简单的svg案例的更多相关文章

  1. 查看服务器系统资源(cpu,内容)利用率前几位的进程的方法

    在日常运维工作中,我们经常需要了解服务器上的系统资源的使用情况,要清楚知道一些重要进程所占的资源比例.这就需要熟练掌握下面几个命令的使用: 1)查看占用CPU最高的5个进程 # ps aux | so ...

  2. 如何用Android Studio查看build.gradle源码

    上一篇博客里讲过 build.gradle 里的每一行代码基本都是在调用一个方法,既然是这样,我们就可以用 android studio(下面简称as) 去查看它源码的方法注释说明,这样就可以理解每个 ...

  3. 查看当前支持的shell,echo -e相关转义符,一个简单shell脚本,dos2unix命令把windows格式转为Linux格式

    /etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bi ...

  4. 【Linux】查看所使用的Linux系统是32位还是64 位的方法

    查看所使用的Linux系统是32位还是64 位的方法 方法一:getconf LONG_BIT # getconf LONG_BIT 1 1 我的Linux是32位!!! 方法二:arch # arc ...

  5. 如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1

    原文:http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql-web-service-for-an-ios-app 作为一个i ...

  6. 如何用linux命令查看nginx是否在正常运行

      有时想知道nigix是否在正常运行,需要用linux命令查看nginx运行情况. 执行命令: ps -A | grep nginx  如果返回结果的话,说明有nginx在运行,服务已经启动. 如果 ...

  7. 如何用浏览器在线查看.ipynb文件

            当我们用jupyter notebook编辑好.ipynb文件后,肯定会想不用运行jupyter notebook也能方便得查看.ipynb的文件,如果直接打开.ipynb的文件,我们 ...

  8. 如何用SPY++工具查看窗体的句柄

    我安装的是vs2012,先找到SPY++工具打开 打开方式: 方式1:通过路径(C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microso ...

  9. 如何用DOS命令查看占用某端口的程序及PID号

    果学过JSP编程的朋友可以会发现,若用Eclipse运行JSP文件时常常会弹出某某端口正在使用,从而导致代码无法运行.如何查找出特定端口的使用情况以及对应的程序呢,针对该问题,本文介绍利用DOS命令查 ...

随机推荐

  1. H5活动页面与APP交互规则

    IOS: 用户信息请求:window.webkit.messageHandlers.GetUserInfo.postMessage(jsonData); 参数:jsonData 回调方法:iosDel ...

  2. 设备指纹(Device Fingerprinting)是什么?

    简单来讲,设备指纹是指可以用于标识出该设备的设备特征或者独特的设备标识.设备指纹因子通常包括计算机的操作系统类型,安装的各种插件,浏览器的语言设置及其时区 .设备的硬件ID,手机的IMEI,电脑的网卡 ...

  3. loj 10000 活动安排

    ****这是一个贪心题,把结束时间排个序,然后留出更多的时间给后面的活动. #include<cstdio> #include<cstring> #include<alg ...

  4. QString 的用法

    C++语言提供了两种字符串的实现:C风格的字符串,以'\0‘结尾;std::string,即标准模版库中的类.Qt则提供了自己的字符串实现:QString,QString不用担心内存分配以及关于'\0 ...

  5. Linux NTP服务配置 for Oracle RAC

    安装Oracle 11g RAC时,我们需要配置ntp服务.在使用虚拟机的情况下对于时钟同步方式的配置有很多种方式,可以使用vmware自带的时钟同步功能,也可以直接将本地的一个节点用作时间服务器.本 ...

  6. 接收上传的multi-file的文件(四)

    构建工程 为例创建一个springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-starter-web的起步依赖.为例能够上传文件在服务器,你需 ...

  7. 快捷键设置 keyiing.json

    // 快捷键设置 keyiing.json // 将键绑定放入此文件中以覆盖默认值 [     /* // 转换大写     {         "key" : "ctr ...

  8. Java Web(三) Servlet会话管理

    会话跟踪 什么是会话? 可简单理解为,用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭服务器,整个过程称为一个会话.从特定客户端到服务器的一系列请求称为会话.记录会话信息的技术称 ...

  9. nyoj 0269 VF(dp)

    nyoj 0269 VF 意思大致为从1-10^9数中找到位数和为s的个数 分析:利用动态规划思想,一位一位的考虑,和s的范围为1-81 状态定义:dp[i][j] = 当前所有i位数的和为j的个数 ...

  10. Spring boot返回JSON类型响应及Content-Type设置

    一.背景 服务器软件用Spring boot开发,API调用的响应消息格式为JSON. 对端调用接口后无法解析响应. 抓包看Response的Body部分确实是正确的JSON格式字符串. 二.问题分析 ...