- 博客(116)
- 收藏
- 关注
原创 PowerBI 矩阵实现动态行内容(如前后销售数据)统计数据,以及过滤同时为0的数据
解决方法,首先修改度量值 [销量]:,将第三种情况,变为前两种情况的值的累加,可以理解为第三情况就是同时选择了前3天和后3天。2.新建一个度量值,用SELECTEDVALUE去获取矩阵的"列",然后分别统计3天前和3天后的销量。我们可以发现,当选择"活动1"时,产品C的前后3天销量都是0,我们不想看到数据都为0的。只是被矩阵的"列"给分成了两列。然后让矩阵只显示 show的数据,结果所有的数据都不显示了。虽然矩阵显示了前后3天,共两列,但其实只有一个度量值。我们有一张活动表 和 一张销售表。
2025-05-20 18:29:09
591
原创 PowerBI 表格显示无关联的表数据
因为 [库存表] 里的数据有除 [产品表] 以外的产品的数据,所以PBI无法从两张表中找到一一对应的数据。新建一个度量值,求库存的总和,条件是过滤掉 [库存表] 里多余的产品信息。我们将他们放入表格里显示,数据会出问题。解决方法:(不建立关联关系的情况下)
2025-04-18 16:02:28
234
原创 PowerBI 条形图显示数值和百分比
显示效果,百分比可以根据切片器进行动态计算。找到数据标签里的”值“,引用度量值。视觉对象勾选数据标签。
2025-04-12 23:21:16
943
1
原创 PowerBI 计算时间用EDATE
我发现很奇怪的现象,假如某个日期字段为2024-9-1,那么“去年”计算出来为2023-9,但是,如果日期字段原本就有2023-9的数据,那么“去年”最后得到的结果为NULL。很奇怪,感觉就是计算出的值,会被现有相同的值过滤掉,始终找不到原因,最后改为EDATE解决问题。我在原表基础上,根据日期字段,计算去年时间。
2025-04-08 19:02:01
313
原创 PowerBI 用字段参数实现饼图动态图例显示
注意,对参数表进行selectedvalue,会获取字段的完整名称 ('销售表'[支付渠道]),所以这里要用是否包含来判断。5. 饼图就能根据切片器进行图例的动态显示了,这么做还有一点好处,不需要对原数据表进行计算,可以避免修改筛选上下文。3. 完成后,报表会自动添加一个切片器(这里我们切换成单选模式),数据窗口将出现[参数]表。用户通过切片器,选择是通过"支付渠道"来统计数据,或者是通过"销售门店"来统计销售数据。2. 如图勾选上列"支付渠道",和列"销售门店"4.报表放入饼图,拖入字段。
2025-04-02 11:25:26
294
原创 PowerBi 桑基图(SanKey)显示多节点的解决方法
严格来说,这不是问题,因为图表检测到数据有从source到dest,有2个以上的节点,比如上海->北京->南京。但是图表这样显示,不是很美观,客户可能会要求我们修改。解决方法,把dest的数据前面加一个空格。
2025-03-31 17:36:19
324
原创 PowerBI 矩阵,列标题自定义排序
主页“->"输入数据"->”新建表“最后把门店表的门店名称放入矩阵的列里。然后,如图所示,让门店按照ID排序。矩阵的列标题的排序顺序就能自定义啦。
2025-03-27 17:48:42
816
原创 PowerBI,用度量值实现表格销售统计(含合计)的简单示例
1.我们新建一个计算表,把门店信息从销量表里提取出来,这里我不建议直接将数据表的的字段放入切片器,因为它是维度,实际开发中,维度表可能有多个字段,多个表联合组成,所以最好是用单独的表。度量值 [L1_销量],放入表格里,会自动根据关联关系逐行计算,每次只计算当前行的产品销量,放在表格外,就会计算所有的总和。2. IN VALUES,是用于切片器是多选的情况,如果是单选用SELECTEDVALUE()。解释:按照产品编码分组,计算每个产品编码的总销量(GROUPBY),然后再求总和(最外层的SUMX)。
2025-03-24 10:07:35
1167
原创 PowerBI 条形图,解决数据标签在条形内部看不清的问题
字体也会自动切换为白色,如果设计要求条形的颜色是浅色,就会导致数据看不清晰。最上面两行,数据标签显示在了条形内部,哪怕设置了值为黑色。或者用规则,设置值在条形图数据区间内为黑色,也行。点击字体颜色旁边的条件格式。设置字体颜色为新建的度量值。将数据标签位置设置为端外。
2025-03-19 16:03:29
295
原创 PowerBi,一个简单的动态度量值以及图表联动的案例
L1不用FILTER,直接计算SUM。改为在L2里按照线上,线下FILTER,这样,就只需要两个度量值了。左边的饼图显示每个门店的销量以及百分比,右边是一个堆积条形图,显示每种商品的销量,并且有一个切片器能切换显示销售渠道。编辑交互完成后,一定记得再点击一下,才取消,否则切换到其他菜单后,编辑交互功能会一直存在。L2通过判断切片器的选择,分别调用不同的度量值。L1开头的度量值,是分别计算线上和线下的销量。选中切片器,编辑交互为不影响左边的饼图。选中饼图,编辑交互为,右边的条形图是“
2025-03-10 16:54:48
518
原创 PowerBi使用SQL脚本导入数据库数据
2. 展开高级选项,这里可以写入SQL,对一些复杂的查询,合并,以及字段处理。对于善于SQL编程的人,太方便了。1.获取数据,选择一个数据库连接。
2025-03-06 15:29:30
326
原创 Javascript使用Sodium库实现 aead_xchacha20poly1305_ietf加密解密,以及与后端的密文交互
Node.js环境安装 sodium-native (其他库可能会出现加密解密失败,如果要使用不一样的库,请自行验证)示例代码,使用的是 sodium-native v4.3.2 (其他版本可能会有变化,如果要使用,请自行验证)
2025-02-21 11:02:32
351
原创 PowerBI 矩阵 列标题分组显示(两行列标题)
我们在“可视化”->“列”,上双击,输入空格,就能消除左上角的"类别"两字,同理修改其他列标题名。然后再修饰下背景色,边框等,就得到最终结果啦。然后修改布局为“表格”行标题,去掉"+/-"
2025-02-13 17:49:45
1018
原创 记一次多表join,分组聚合查询的踩坑
A表的ID字段,在B表中有对应的多条记录,在C表中也有对用的多条记录,我想按照A表的ID分组,分别对B表和C表里的数据进行求和。经检查发现,是因为这种写法,B表和C表里的数据进行了交叉多次求和。结果发现SQL运行奇慢无比,而且计算出来的数据十分巨大。
2025-02-08 16:57:44
256
原创 npm pack 手动下载非本机平台的依赖包
我们首先去打开node_modules里面的package-lock.json文件,找到rollup。然后我们把他移动到依赖包目录下,路径按照package-lock的结构,就可以一起发给linux机器了。但是某些特殊情况,比如开发用windows,发布用linux,而linux又无法联网下载依赖包。我们可能就需要在本机下载好linux的包,然后把node_modules整个发给linux机器。找到linux平台的依赖包名和版本号,使用。有些依赖包是需要平台支持的,当我们使用。比如 rollup 依赖包,
2025-01-15 15:42:36
619
原创 Vite代理不成功的解决方法
可以试试将target的 "localhost" 修改为 127.0.0.1 或者 [::1]前端报代理错误,后端没有访问记录,说明代理没有成功。
2025-01-15 14:47:43
599
原创 PowerBI 图表使用千分位数值
(以此类推,如果有金额显示则:$#,###,##)格式代码: #,###,##在度量工具菜单里,勾上千分位。方法2:自定义数据格式。方法1. 使用度量值。
2024-12-27 10:28:09
1061
原创 PowerBI 今年与去年销量同比统计的设计案例
假设我们有张数据表,包含了一些产品,在两年间的销售数据(2010年和2011年):我们想制作今年与去年的销量同比一个折线图,显示每月的总销售数据做同比展示一个堆积条形图,统计每种产品的同比销量(提示:应该是“销量”,不是"数量",做完发现字错了,懒得改了)
2024-11-26 17:16:12
994
原创 PowerBI 用TREATAS和INTERSECT实现无关表筛选
这时就需要用到TREATAS(table_expression, <column>[, <column>[, <column>[,…Treat as,顾名思义,“把...当作...”,可以用第一个参数 table表达式里的值,去筛选后面参数表中的列。[产品]表里,有三条数据 "red","yellow","green"出现在[颜色]表里,但是它们之间没有任何关系。所以当我们将[颜色]表作为切片器的话,是无法对[产品]表进行筛选的。不出意料的,切片器对[产品]表没有筛选作用。
2024-11-21 16:10:27
748
原创 PowerBI 用DAX 实现合并查询的方式
因为两张表有相同的列名【巧克力ID】,所以直接使用NATURALLEFTOUTERJOIN()函数就可以解决。但是NATURALLEFTOUTERJOIN()函数有一个限制条件是:需要关联表具有相同的列名,而实际情况是,比如,巧克力表里,“巧克力ID”就叫“ID”,这样就无法使用NATURALLEFTOUTERJOIN()函数。最近在做PowerBI项目,遇到有客户要求不允许使用"合并查询"功能去改变表结构,但是又需要合并查询的情况。(为了以示区分,我们暂且叫它【巧克力(不同列名)】表)
2024-11-20 18:08:47
1263
原创 PoweBI 用DAX 实现透视列和逆透视列
PowerBi的编辑查询->转换,可以实现数据表的透视列(行转列,或者叫一列变多列)和逆透视列(列转行,或者叫多列变一列)功能。但是这种方法会修改原始数据表,在开发中,可能会遇到客户不允许我们修改表的情况,那么我们就要考虑使用DAX来实现。我们想把“兴趣”列,变成两列:"偏好视频"和"偏好作者",有的,就显示对应的兴趣,没有就显示空,或者无。兴趣成功的单独分类统计,然后我们就可以通过将它作为计算表来进行其他统计计算,而不需要修改原始数据表。
2024-11-20 11:34:49
609
2
原创 PowerBI 无法拖动字段到组件上
我也不知道是什么地方的改动导致的,也找不到解决方法。只好重新创建了一个.pbix文件,把原文件的报表全部拷贝到新文件才解决的。就是说报表无法自动聚合计算,所以无法拖动字段到组件上。我们可以看到,出问题的数据表字段前面都没有了聚合图标。今天在做PowerBI时发现一个奇怪的问题。本来好好的报表,突然无法拖动字段到组件上。如果有大佬知道解决方法,望不吝赐教。原因可能是因为"隐式度量值"被禁用。后来在网上搜索相关问题,发现。
2024-11-15 10:32:17
367
原创 PowerBI 用RANK,RANKX和TOPN 排名的简单示例
4.页面上添加一个表格,分别添加'销量'[产品],[总销售量],[排名],[排名2],并点击右上角的...选择"排序方式"->"排名",以及“以升序排序”注意用RANKX函数计算的排名,在"总计"行会有一个数字1。如果要去掉,则需要判断当前行是否有产品数据(总计行是没有的)。然后页面上添加一个堆积条形图,X轴添加[总销售量2],Y轴添加'表'[产品],我们就得到如下一个Top3的排行榜图啦。2. 添加计算总销量的度量值,它将在RANK和RANKX里被使用。这样我们就得到一个销量排行榜啦。
2024-11-14 17:25:17
1854
原创 Node.Js+Knex+MySQL增删改查的简单示例(Typescript)
package.json如下,拷贝并替换你们本地的package.json后运行 npm install 命令安装所需要的依赖。项目使用了nodemon+ts-node方便development。代码部分,VS Code推荐使用Fitten Code插件,目前免费的AI编程工具。可以检查错误,智能补全,代码解释等等,极大提高效率。推荐使用VS Code的插件REST Client进行测试。
2024-11-12 13:45:12
447
原创 防止事件冒泡和防止触发子元素
可以使用mouseenter,或者添加 e.stopPropagation()style里添加 pointer-events: none。1. 防止事件冒泡,触发父元素。以mouseover为例。2. 防止子元素被触发。
2024-11-07 15:55:44
372
原创 不用JS实现鼠标悬停提示框,以及Emotion里:hover使用踩坑
不写onMouseEnter/onMouseLeave或者onMouseOver/onMouseOut,实现鼠标悬停提示框。Enter和Over的区别是,一个事件不冒泡,一个事件冒泡。
2024-11-06 09:49:17
488
原创 Webpack 配置module.css报错Uncaught TypeError: Cannot read properties of undefined
于是认真思考:因为报错信息没有包含类似”couldn't find button.module.css“,”style-loader“....,且npm命令行没有任何报错,所以可以断定css-loader和style-loader是正确安装并启动了的。我又尝试在Button.jsx里点击了css的路径,可以正常跳转到css文件,说明路径引用也没有错误。入口文件是index.jsx,组件Button.jsx使用了样式button.module.css。很奇怪,明明引用了却无法读取css类名。
2024-11-01 10:26:00
481
原创 Webpack devserver 报错Invalid options object. Dev Server has been initialized using an options object
这时就需要在入口文件 index.jsx (webpack.config.js里配置) 里添加页面加载事件的侦听,否则页面DOM还未加载完成,就会去执行组件渲染,导致找不到。遇到这种情况,我们需要检查webpack.config.js里是否有配置contentBase,如果有,就把contentBase用static替换掉。运行npm start就可以打开dev server了。这里就提示contentBase是未知的。
2024-10-31 18:06:57
728
原创 Node.js实现文件上传下载
1. 安装 express, multer库。4. 前端页面upload.html。7. 运行前端页面执行上传。
2024-10-24 17:42:38
446
2
原创 HttpOnly Cookie
HttpOnly Cookie 是一种具有特殊属性的 Cookie,旨在提高 Web 应用程序的安全性。我们可以使用Httponly cookie,在服务器端生成和保存token,防止token被客户端访问,比如。,可以防止客户端 JavaScript 访问这些 Cookie,从而减小 XSS(跨站脚本)攻击的风险。客户端将无法使用javascript访问cookie。
2024-10-24 11:41:09
313
原创 Node.js配置Typescript自动编译
4.使用 ts-node: ts-node 是一个可以直接运行 TypeScript 代码的工具。5.运行项目: 使用以下命令启动项目,nodemon 将会监听文件变化并自动编译和重新启动。我们使用Node.js编译运行typescript,通常是以下两个命令。这种方式很繁琐,下面分享给大家自动编译typescript的方法。2. 安装 TypeScript 和 nodemon。3. 创建一个 TypeScript 配置文件。
2024-10-15 15:43:22
507
原创 让你一看就懂,Javascript的原型和原型链
如果没有,它将查找该对象的原型,而原型对象可能也有原型,于是一层一层,依此类推,直到找到或者到达原型链的末端(通常是 null)作用:通过 prototype,我们可以给构造函数添加属性和方法,使得所有由该构造函数创建的对象实例都能访问这些属性和方法。作用:通过 __proto__,我们可以直接访问或修改对象的原型,但是这种做法并不推荐,因为可能会破坏继承链。__proto__ 与对象实例相关,它指向了构造函数的 prototype,用于访问具体对象的原型。没关系,希望我的这一篇文章,能让你一看就懂。
2024-10-11 11:01:31
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人