当前位置: 首页 > news >正文

【Power Query】用筛选和上下文 排名

国际排名

国际排名往往不是连续的整数,看起来很跳跃:

假如两个人 并列第1,虽然分数一样,但是会挤占掉第2的位置,接下来会是第3名…

例如这样:

姓名分数国际排名
A1001
B1001
C983
D983
E983
F956

于是:如果没有(0)人分数比我高,我就是第1名;如果2个人比我高,我就是第3名…
这样只要将大于我的筛选出来,再数数有几个,加上1就是我的排名

那么函数,这里算的是销量排名:

= Table.AddColumn(源, "国际排名", (d)=>Table.RowCount(Table.SelectRows(源,(x)=>x[销量]>d[销量]))+1)

步骤拆解:

在这里插入图片描述

  • (g)=>g :是定义上下文,
    括号里的 g 代表【上文】也就是目前的整个表,
    右侧的 g 代表【下文】也就是在每一行里插入的内容

  • 括号里可以写字母或文字,都没有关系,但前后要对应

中国排名

中国排名则看起来很连贯,不管前面有几个并列第1,接下来一定是从第2开始

姓名分数国际排名
A1001
B1001
C982
D982
E982
F953

于是,不管在我前面有几个人并列第1,都只算他们一个人,我还是第2 名
那么,在筛选出大于我的所有人之后,按分数去重,也就是每个排名都只剩一个人了
仍然+1,往后顺延一位,这就是我的排名了

= Table.AddColumn(源, "中国排名", each Table.RowCount(Table.Distinct(Table.SelectRows(源,(x)=>x[销量]>[销量]),"销量"))+1)

步骤拆解:

在这里插入图片描述

部门排名

以中国排名为例:

= Table.AddColumn(国际排名, "部门排名", each Table.RowCount(Table.Distinct(Table.SelectRows(国际排名,(x)=>x[销量]>[销量]and x[部门]=[部门]),"销量"))+1)

在这里插入图片描述

  • 这里的 and x[部门]=[部门],前一个部门属于 套在里面的待筛选的那个表,后一个属于外面的当前的表,
  • 当只有两个环境时,当前的环境可以不定义,默认就是,所以只写了一个字段。

http://www.mrgr.cn/news/46497.html

相关文章:

  • unity免费资源2025-1-17
  • CSS的小知识
  • 浅谈云计算06 | 云管理系统架构
  • 电脑分辨率调到为多少最佳?电脑分辨率最佳设置
  • Redis常见
  • K8s 集群 IP 地址管理指南(K8s Cluster IP Address Management Guide)
  • 系统性能优化
  • minio简单使用
  • 谷歌AI大模型Gemini API快速入门及LangChain调用视频教程
  • Wasserstein距离
  • C++之multimap:关键字分类的利器
  • (Linux和数据库)1.Linux操作系统和常用命令
  • NLP: SBERT介绍及sentence-transformers库的使用
  • 基于SpringBoot的校园新闻管理系统 计算机毕业设计选题 Java毕业设计 SpringBoot+Vue 前后端分离 [附源码+安装调试]
  • MAX模型转为las点云模型
  • 响应速度相关知识
  • 汽车胶黏剂市场研究:预计2030年全球市场规模将达到67.4亿美元
  • Apache Flink 配合 Debezium 连接器来捕获 Oracle 数据库变更日志的应用
  • 图像平滑处理
  • 基于vue框架的大学生在线教育jp6jw(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • IDEA 输入英文字体变了的问题
  • 【宽搜】6. leetcode 513 找树左下角的值
  • patch函数前两个参数位
  • c++输出保留n位小数
  • 默认情况下,`QTableView`中的单元格内容是不支持自动换行的,而是将文本截断或者显示省略号。要实现内容自动换行。要用Delegate
  • 鹧鸪云光伏软件全面解析