深入浅出DAX:SELECTEDVALUE()

news2024/11/19 4:40:42

深入浅出DAX:SELECTEDVALUE()

SELECTEDVALUE(),如果筛选 columnName 的上下文后仅剩下一个非重复值,则返回该值。否则返回alternateResult,语法如下:

SELECTEDVALUE(
  <columnName>
  [, <alternateResult>]
)

当仅选择某一列时,可用SELECTEDVALUE()函数去替换IF()+HASONEVALUE(),该函数的第2个参数为可省参数。当SELECTEDVALUE()置于分母中时,建议将第2个参数指定为1。

以下为SELECTEDVALUE()函数的常见应用场景。

01、单位转换

加载DEMO.xlsx中的装货表。创建度量值M.装卸数,表达式如下:

M.装载量 =
SUMX (
    '装货',
    '装货'[质量]
        * SWITCH (
TRUE (),
            '装货'[单位] = "吨",'装货'[质量] * 1000,
            '装货'[单位] = "克",'装货'[质量] / 1000
        )
)

单击可视化区域的“卡片图”。选择“字段”按钮,将M.装载量放入“值”区域。返回的值如图1所示。

Power BI默认的显示单位为无、千、百万、十亿、万亿,这些显示方式在日常识别时显得很别扭。手动创建辅助表(表名:单位表),将单位设置为“一、万、亿”三档,表达式如下:

单位表 =
DATATABLE (
    "索引", INTEGER,
    "单位", STRING,
    "单位值", INTEGER,
    {
        { 1, "1", 1 }, //”1”,出于解决中文排序问题考虑的
      { 2, "万", 10000 },
        { 3, "亿", 100000000 }
    }
)

该表无须与数据模型创建关系,如图2所示。 

■ 图2  创建的单位表

创建度量值M.装载量转换,表达式如下:

M.装载量转换 = [M.装载量]/SELECTEDVALUE('单位表'[单位值],1)

以上度量值等价于度量值M.装载量转换A,表达式如下:

M.装载量转换A =
[M.装载量]
    / IF (
        HASONEVALUE ( '单位表'[单位值] ),
       VALUES ( '单位表'[单位值] ),
      1
    )

单击可视化区域的“卡片图”。选择“字段”按钮,将度量值M.装载量转换放入“值”区域;选择“格式”按钮,将“显示单位”设置为无。复制该卡片图,将其中的“字段”更改为M.装载量转换A。返回的值如图3所示。

■ 图3 装载量的显示单位(1)

单击可视化区域的“卡片图”,选择“字段”为单位表中的单位字段。单击“切片器”中的单位万,返回的值如图4所示。

■ 图4 装载量的显示单位(2)

图4中,SELECTEDVALUE()及其类似功能函数会根据切片器的选择而动态更换分母,因而卡片M.装载量转换和M.装载量转换A中的值会根据外部上下文的环境进行动态匹配运算。当未做切片器选择时,则会对M.装载量的值除以1。

02、动态指标分析

创建表T出入库,表达式如下:

T出入库 = DATATABLE("分类",STRING,{{"入库量"},{"出库量"}})

返回的值如图5所示。

创建度量值M.出入库切换,表达式如下:

M.出入库切换 =
SWITCH (
    SELECTEDVALUE ( 'T出入库'[分类] ),
    "入库量", SUM ( DK[入库] ),
    "出库量", SUM ( DK[出库] )
)

在可视化区域,单击“切片器”,将T出入库表的分类拖入“字段”。单击“卡片图”,将度量值M.出入库切换放入“字段”。切片器选择及对应返回值如图9-36所示。

图片

■ 图6 依据度量值的切换显示不同的值(1)

如果将图9-36的“卡片图”换成“簇状柱形图”,可将DK表的产品拖入“轴”,将度量值M.出入库切换放入“值”。切片器选择及对应返回值如图7所示。

图片

■ 图7 依据度量值的切换显示不同的值(2)

03、动态图表标题

创建度量值M.,表达式如下:

M.包装选择 = SELECTEDVALUE(DK[包装方式])

在可视化区域,单击“切片器”,“字段”为M.包装选择。在可视化区域,单击“簇状柱形图”,“轴”为产品,“值”为M.入库量。在格式选项卡的格式栏,单击“常规”→“标题”→“文本”→fx;在“标题文本-标题”视窗中,选择“格式样式”为字段值,应用的字段为M.包装选择,单击“确定”按钮,如图8所示。

■ 图8  自定义视觉对象的颜色(1)

柱形图的颜色已自动配色,返回的值如图9所示。

■ 图9  自定义视觉对象的颜色(2) 

 

 

 

        

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CorelDRAW Graphics Suite2023绿色中文版本下载教程

CorelDRAW Graphics Suite2023版是领先的一体化软件包&#xff0c;它包括多个程序&#xff0c;如CorelDRAW、Corel PHOTO-PAINT、Corel CAPTURE、Corel Font Manager、Duplexing Wizard等&#xff0c;可全部安装&#xff0c;也可根据实际需要选择进行安装&#xff0c;都是最新版…

敏捷发布列车初探2 ---- Agile Release Train

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 敏捷发布列车二、ART的特性2.敏捷团队为列车提供动力3.与共同节奏保持一致4.关键角色启用 三、ART的责任总结 敏捷发布列车 敏捷发布列车&#xff08;ART&#xff…

PHP生成二维码带图标代码实例

PHP生成二维码带图标代码实例&#xff08;PHP QR Code二维码生成类库&#xff09; public static function png($text, $outfilefalse, $levelQR_ECLEVEL_L, $size3, $margin4, $saveandprintfalse) { $enc QRencode::factory($level, $size, $margin); return $enc->…

IP地址证书:保护网站安全的重要措施

首先&#xff0c;我们需要了解什么是IP地址证书。IP地址证书是一种专门用于公网IP地址验证的数字证书&#xff0c;它主要用于解决IP地址明文传输的安全隐患和加密传输的问题。那么IP地址证书是如何保护网站的&#xff1f; 1&#xff0c;身份验证 IP地址证书用于对网站进行身份…

mysql workbench常用操作

1、No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar 方法一&#xff1a;双击你要使用的库 方法二&#xff1a;USE 数据库名 2、复制表名&#xff0c;字段名 3、保存链接

Swift data范围截取问题

文章目录 一、截取字符串的几种方法1. 截取前几位2. 截取后几位3. subData4. 下标截取 二、subData(in:) 报错 EXC_BREAKPOINT 一、截取字符串的几种方法 1. 截取前几位 mobileID.prefix(32)2. 截取后几位 mobileID.suffix(3)3. subData data.subdata(in: 0..<4)4. 下标…

港科夜闻|香港科技大学颁授荣誉大学院士予六位杰出人士

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科技大学颁授荣誉大学院士予六位杰出人士。他们分别为陈晓峰先生、郑志刚博士、冯英伟先生、李慧诗女士、姚珏女士及叶毓强教授(按姓氏英文字母排序)。荣誉大学院士颁授典礼由香港科大校董会主席沈向洋教授和香港科大…

开发APP的费用是多少

开发一款APP的费用可以因多种因素而异&#xff0c;包括项目的规模、功能、复杂性、技术选择、地理位置等。北京是中国的大城市&#xff0c;APP开发的费用也会受到北京的物价水平和市场竞争的影响。以下是一些可以影响APP开发费用的因素&#xff0c;希望对大家有所帮助。北京木奇…

Codeforces Round 889 (Div. 2)A~C1题解

A. Dalton the Teacher 题目分析&#xff1a; 模拟&#xff0c;写出两个就能找出规律&#xff1a;坐在自己位子上的小孩会不高兴&#xff0c;所以统计下来cnt 发现cnt为奇数是(cnt1)/2次就能换成要求&#xff0c;偶数就是cnt/2 #include<bits/stdc.h> #pragma GCC op…

Silicon labs BG22蓝牙开发记录(一)

本篇内容适用初学者使用&#xff0c;主要介绍如何快速了解Siliconlabs EFR32BG22蓝牙芯片相关的软件资源和硬件资源&#xff0c;结合了我作为FAE 支持的一些个人看法&#xff0c;便于使用者快速入门&#xff0c;加速你们的产品实施。 本系列分为&#xff1a; Siliconlabs BG22…

世界前沿技术发展报告2023《世界信息技术发展报告》(一)世界信息技术及产业发展重要动向

&#xff08;一&#xff09;世界信息技术及产业发展重要动向 1. 概述2. 半导体技术水平持续进步&#xff0c;行业内部开始新一轮调整2.1 全球主要经济体加强半导体技术能力建设&#xff0c;推动厂商扩产2.2 先进制程技术持续发展&#xff0c;先进封装技术崭露头角2.3 消费电子半…

幸存者偏差

幸存者偏差&#xff08;英语&#xff1a;survivorship bias&#xff09;&#xff0c;另译为“生存者偏差”&#xff0c;是一种认知偏差。其逻辑谬误表现为过分关注于目前人或物“幸存了某些经历”然而往往忽略了不在视界内或无法幸存这些事件的人或物。 幸存者偏差最早来源于第…

品牌出海的关键步骤:市场定位与创新营销

现如今越来越多的企业开始将目光投向海外市场&#xff0c;寻求品牌出海的机会。品牌出海是指企业将自身品牌拓展至海外市场&#xff0c;通过进军国际市场来实现增长和发展。然而&#xff0c;面对不同的文化、市场环境和消费者需求&#xff0c;成功的品牌出海需要制定有效的策略…

apifox怎么测试API,你学会了吗?

背景 由其他的team做的项目&#xff0c;配置到一个新的环境下。由于项目需要与别的公司的项目接连&#xff0c;所以需要创建公开的API接口&#xff0c;利用apifox来进行测试&#xff08;postman&#xff0c;jmeter都可以&#xff09;。此次利用apifox来创建测试API接口的测试 …

小程序添加隐私保护指引弹框(包含配置隐私保护指引方法)

实现效果&#xff1a; 目录 前言一、 涉及到使用了隐私接口的小程序必须在「小程序管理后台」设置《小程序用户隐私保护指引》&#xff0c;微信一共提供了 4 个接口给开发者使用&#xff0c;分别是:二、 配置隐私协议弹框组件三、在页面中使用协议弹窗组件四、uniapp开发&#…

自己开发一个VSCode插件,快速生成Flex布局代码

插件CSS Flex 安装地址&#xff1a;VSCode插件安装 GitHub&#xff1a;https://github.com/xutao-o/css-flex-code &#x1f4a1;介绍 这是一个快捷生成CSS Flex布局代码的VS Code插件&#xff0c;类似于Google开发者控制台里的Flex布局工具&#xff0c;就是看谷歌的布局工具…

stm32之软件模拟IIC

在之前的文章中分析过在52上的IIC时序&#xff0c;也测试过stm32的自带IIC功能&#xff0c;这里大致写下如何模拟stm32上的IIC。实验硬件基于stm32f103c8t6 废话不多说&#xff0c;先直接上代码。 一、源码 头文件 #include "stdint.h" #include "gpio.h&quo…

编译u-boot的过程中遇到的问题

我使用的是uboot-2016.tar.bz2这个压缩包&#xff0c;将其解压之后进入这个文件夹&#xff0c;里面所包含的文件如下图所示。 这个文件夹下包含着三个Shell脚本文件&#xff0c;都是可执行的&#xff0c;打开其中一个其内容如下。 根据自己的开发板类型决定执行哪一个Shell脚…

基于Python实现的快递管理系统源码+数据库,采用PyQt6实现GUI界面

快递管理系统 完整代码下载地址&#xff1a;快递管理系统 介绍 通过对传统的快递收发流程进行分析&#xff0c;完成网上快递管理系统的分析设计与开发&#xff0c;使客户能方便在网站上查询自己的快件信息以及网上寄件&#xff0c;同时管理员又能对每天的收到快件进行登记和…

一步步教你如何搭建K8S集群

一、环境配置 三台CentOS7虚拟机&#xff0c;默认配置&#xff0c;内存2GB、处理器2核心。 先更新下系统 1 sudo yum update 2 sudo yum upgrade 二、安装并启动 docker 1 yum -y install wget 2 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo …