PowerBI - EARLIER 函数
先查一下概念,Earlier 返回的是哪个值。
仍没太理解,先试一下。。
#1 - 计算LQ的互动人数
数据:
实践1:
实践2:
从以上结果得出, 实践1的结果是正确的,也就说明Earlier 定位的是要计算的这一行的当前列的值,再用filter 返回的范围内的其他值与之做比较,计算能匹配上的行的数值。
sumx( FILTER( '维护情况by季度', '维护情况by季度'[编号] = EARLIER('维护情况by季度'[编号]) && '维护情况by季度'[b_EN] = EARLIER('维护情况by季度'[b_EN]) && '维护情况by季度'[年份季度] = EARLIER('维护情况by季度'[年份季度_LQ]) ), '维护情况by季度'[互动人数] )
#2 - 将多行按照编号合并到一行
方法一 Power Query 实现
# 根据Code 将Code下的多个Name更新为一行
参考教程:https://blog.csdn.net/qq_18256185/article/details/107151849
Step1 - 保留Code 列和 Name列,一个Code 有多个Name
Step2 - 进入PQ编辑页面
Step3 - 主页,分组依据 = Code,列名 = 分组,操作 = 所有行,确定
Step4 - 添加列 ,自定义列,插入 【分组】
Step5 - 修改添加自定义列的函数
原本是 = Table.AddColumn(分组的行, “自定义”, each [分组])
修改成 = Table.AddColumn(分组的行, “自定义”, each Table.Column( [分组],“Name”))
Step6 - 点击自定义列,点击“提取值”
Step7 - 分隔符随便点
Step8 - 主页 - 拆分列 - 按分隔符
Step9 - 删除多余列,完成。
方法二 使用DAX新建列
# 根据Code 将Code下的多个值更新为一个值。
VAR x = FILTER( 'Table', 'Table'[SAP Code] = EARLIER('Table'[SAP Code])) RETURN MAXX( x, 'Table'[Forecasting Line])
#3 判断当前工作日是本月第几个工作日
数据:
添加计算列:
本月工作日序号 = if('D_Date'[Is_WorkDay] = 1, calculate( sum('D_Date'[Is_WorkDay]), FILTER(ALL(D_Date),'D_Date'[DATE]<=EARLIER(D_Date[DATE]) && 'D_Date'[本月第一天] = EARLIER('D_Date'[本月第一天])) ))
输出结果:(粗暴地将 'D_Date'[DATE] <= EARLIER(D_Date[DATE]) 理解为,EARLIER(D_Date[DATE])为当前 [DATE] 列每行的值,'D_Date'[DATE] <= EARLIER(D_Date[DATE] 表示遍历比当前每行小的所有日期值作为结果返回)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」