8.2 PowerBI系列之DAX函数专题-进阶-实现切片器筛选之间的or逻辑

news2025/1/13 17:09:34

需求

两个切片器之间都被选中的情况下,实现符合切片器条件的并集的结果呈现,而非交集的结果呈现,
在这里插入图片描述
在这里插入图片描述

实现

or #1 =
var occupations = values('customer'[occupation]) --获取到当前切片器选中的值
var bands = values('product'[brand])
return sumx( --sumx将calculatetable返回的表,根据当前年份的上下文,计算累加销售额
					calculatetable(
						filter(--获取到当前两个切片器or条件的所有sales记录
						'sales',
						or(related('customer'[occupation]) in occupations,--由于occupation不是sales的字段,所以需要related一下,注意,这里related的时上面取到的切片器中的值
							related('product'[brand]) in bands
							)
						),
						all('customer'[occupation]),--在caculatetable计算中获取所有的记录,排除当前两个切片器的and关系,然后再与上面filter中获得的记录取交集
						all('product'[brand])
					),
				'sales'[net price]
)
or #2 =
var occupations = values('customer'[occupation]) --获取到当前切片器选中的值
var bands = values('product'[brand])
return  calculate(
						sum('sales'[net price]),
						calcultaetable(
						filter(--获取到当前两个切片器or条件的所有sales记录
						'sales',
						or(related('customer'[occupation]) in occupations,--由于occupation不是sales的字段,所以需要related一下,注意,这里related的时上面取到的切片器中的值
							related('product'[brand]) in bands
							)
						),
						all('customer'[occupation]),--在caculatetable计算中获取所有的记录,排除当前两个切片器的and关系,然后再与上面filter中获得的记录取交集
						all('product'[brand])
					)
)
or #3 =
var occupations = values('customer'[occupation]) --获取到当前切片器选中的值
var bands = values('product'[brand])
return  calculate(
						sum('sales'[net price]),
						calcultaetable(
						filter(--获取到当前两个切片器or条件的所有sales记录
						summarize('sales','customer'[occupation],'product'[brand]),
						or('customer'[occupation] in occupations,--由于上面提前准备好了一个包含需要列的table,这里不需要related
							'product'[brand] in bands
							)
						),
						all('customer'[occupation]),--在caculatetable计算中获取所有的记录,排除当前两个切片器的and关系,然后再与上面filter中获得的记录取交集
						all('product'[brand])
					)
)
or #4 =
var occupations = values('customer'[occupation]) --获取到当前切片器选中的值
var bands = values('product'[brand])
return  calculate(
						sum('sales'[net price]),
						filter(--获取到当前两个切片器or条件的所有sales记录
						crossjoin(all(customer[occupation]),all('product'[brand])), --利用crossjoin组装包含两个字段的笛卡尔积的表
						or('customer'[occupation] in occupations,--由于上面提前准备好了一个包含需要列的table,这里不需要related
							'product'[brand] in bands
							)
						)
)
or #5 =
return  calculate(
						sum('sales'[net price]),
						union(--获取到当前两个切片器or条件的所有sales记录
						crossjoin(values('product'[brand]),all('customer'[occupation])), --相当于SQL做一次left join,对所有选中的brand匹配所有的occupation
						crossjoin(all('product'[brand],values('customer'[occupation])), --对选中的occupation匹配所有的brand
						)
)

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

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

相关文章

Node环境中调用Python脚本

今天遇到一个需要在Node服务中调用Python脚本的需求,这里就把这个场景单独抽离出来汇总一下方法 在node中的child_process中有execSync, exec两个方法来创建一个子进程,然后在子进程里执行对应的python命令,这两个命令可以让我们执行一个脚本…

蓝桥杯专题-试题版-【完美的代价】【芯片测试】【序列求和】【杨辉三角形】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

Jmeter分布式压测配置

目录 前置条件 环境部署并使用 前置条件 电脑A,电脑B,电脑C均安装相同版本的JMeter 和JDK。其中电脑A作为控制机,电脑B和电脑C作为施压机 电脑A IP:172.16.0.114 电脑B IP:172.16.0.115 电脑C IP:172…

PLC通讯协议【三菱】FX协议的报文格式和读写示例

通过编程口通讯协议,具体可操作的软元件有:X/Y/M/S/T/C/D。 通讯设置 必须设置为:波特率9600,偶校验,7位数据位,1停止位。否则无法通讯。 一、报文结构 注意: 通讯协议中的所有字符是用它们的十六进制ASCII码表示。如果有十进制数据,要先转化为十六进制数,再把十六进制…

数据挖掘算法常用四大类

一、常用算法有哪四大类 既然我们知道数据挖掘的算法是为了寻找数据中潜在的知识,那么数据挖掘的算法通常都有哪些类型呢?如果说按照这些算法所解决的问题来进行划分,大致可以分为分类问题、聚类问题、回归问题和关联分析问题。下面我们就来…

chatgpt赋能python:如何使用Python读取手机短信

如何使用Python读取手机短信 在现代社会,短信已成为人们生活中不可或缺的一部分。那么,如何利用Python读取手机短信呢?本文将介绍如何使用Python读取手机短信,并提出一些相关的建议。 什么是Python Python是一种高级的、开源的…

高并发系统设计40问

01 | 高并发系统:它的通用设计方法是什么? 三种方法: Scale-out(横向扩展):分而治之是一种常见的高并发系统设计方法,采用分布式部署的方式把流量分流开,让每个服务器都承担一部分并…

隐藏cobaltstrike服务器-nginx反向代理

隐藏nginx版本 编辑/etc/nginx/nginx.conf 取消server_tokens off 前面的注释 http转发80端口 编辑/etc/nginx/sites-enabled/default ## # You should look at the following URLs in order to grasp a solid understanding # of Nginx configuration files in order to …

【kubernetes系列】Kubernetes之RC、RS和Deployment

在实际的工作中,我们使用Kubernetes 通常不会直接创建 Pod,而是通过 各种 Controller 来管理 Pod 的。Controller 中定义了 Pod 的部署特性,比如有几个副本,在什么样的 Node 上运行等。为了满足不同的业务场景,Kuberne…

C++之thread的简单使用示例

1、全局函数传入thread #include <iostream> #include <thread> #include <string>void threadWork(std::string content, int counts) {for (int i 0; i < counts; i) {std::cout << content << i << std::endl;} }int main() {std:…

node-sass报错

我们安装vue项目时&#xff0c;经常遇到nade-sass报错。然后切换到某个node版本后不再报错&#xff0c;原因见下文 一&#xff1a;报错内容 二&#xff1a;保存原因 本地nodejs版本跟安装的node-sass版本不一致 三&#xff1a;解决办法 1、查看本地node版本 node -v 2、查…

ECCV2020-FRELU

论文链接&#xff1a;https://arxiv.org/pdf/2007.11824.pdf 官方代码&#xff1a;GitHub - megvii-model/FunnelAct paddle复现版本&#xff1a;FReLU&#xff1a;简单高效的新型激活函数 - 飞桨AI Studio torch复现版本&#xff1a;GitHub - nekitmm/FunnelAct_Pytorch: py…

Word中论文参考文献完美对齐方法

1、首先&#xff0c;我们从知网、谷歌学术或其他网站找到我们需要引用的参考文献&#xff0c;如果你设置了自动编号&#xff0c;请先删除前面的自动编号。 2、我们手动在前面加上[1]、[2]等编号&#xff0c;注意都是英文符号&#xff0c;且没有空格。 3、我们光标放到编号后面…

【教学类-36-03】midjounery-niji表情包图片的矩阵式切割(3*3)及GIF制作过程

作品展示 背景需求&#xff1a; 学习midjounery-niji表情包制作&#xff0c;先用关键词生成了一张3*3的熊猫多种表情图矩阵式样 选第3张&#xff0c;放大&#xff0c;另存为“熊猫9张图” 需要&#xff1a; 把这张PNG图片切成9张同样大的小图&#xff0c;便于生成GIF动图。 图…

QT ObjectThread moveToThread多线程操作

QT多线程专栏共有15篇文章&#xff0c;从初识线程到、QMutex锁、QSemaphore信号量、Emit、Sgnals、Slot主线程子线程互相传值同步变量、QWaitCondition、事件循环、QObjects、线程安全、线程同步、线程异步、QThreadPool线程池、ObjectThread多线程操作、 moveToThread等线程操…

我的项目--初始设计

PYQT 界面1. 表&#xff1a;USER ADD键&#xff1a;USER表添加一条记录 界面2&#xff1a;

【数据结构与算法】5、循环链表、约瑟夫问题、静态链表

循环链表目录 一、单向循环链表(1) add()(2) remove()(3) 单向循环链表特点 二、双向循环链表三、约瑟夫问题&#xff08;Josephus Problem&#xff09;四、静态链表 一、单向循环链表 &#x1f33f; 单向循环链表在单链表的基础上&#xff0c;尾节点的 next 指向头节点 (1) a…

欺诈无所遁形:反欺诈(羊毛盾)API 应用解析

随着互联网的快速发展&#xff0c;欺诈行为不断演变和扩大&#xff0c;涉及的领域也越来越广泛。虚假账户注册、刷单、恶意评论、虚假广告等欺诈手段成为一些不法分子获取利益的途径。这些行为不仅损害了用户的利益&#xff0c;也对在线平台的声誉和可信度造成了威胁。为了解决…

为什么推荐用易模来制作真人手办所需的人像模型?

要问最近什么手办最流行&#xff0c;真人手办必须拥有姓名。大家看腻了传统的动漫以及游戏的周边手办以后&#xff0c;想要玩出点新花样&#xff0c;于是纷纷把眼光放到真人的身上&#xff0c;真人手办开始应运而生。 现阶段制作真人手办通常都是线下来进行&#xff0c;需要消费…

Docker安装pritunl

Background Pritunl是一款图形化的OpenVPN软件&#xff0c;提供一个友好的图形WebUI界面&#xff0c;对传统OpenVPN服务端与客户端复杂的安装配置流程进行了极大的简化&#xff0c;并且通过图形界面可以进行人员管理、参数配置&#xff0c;给予用户非常大的便捷性&#xff0c;适…