用PowerBI分析?先学Excel DAX+M基础
一句话核心价值点:把Excel里藏着的PowerQuery(M语言)和PowerPivot(DAX公式)练熟,日常表格活儿能省掉七八成重复动作,用体系化打法让分析像搭积木一样顺,2026年上班族不用碰PowerBI桌面版,也能把数据玩得明明白白、早早收工。
目录
合并多表老加班?M一键拉全
办公室常遇到:每月销售表分12个文件,手动复制粘贴到凌晨。用M把文件夹里的表一次性吃进来,改个路径就更新。
let 源 = Folder.Files("D:\2026销售数据\月度表"), 筛选Excel = Table.SelectRows(源, each [Extension] =".xlsx"), 提取数据 = Table.AddColumn(筛选Excel, "数据", each Excel.Workbook(File.Contents([Folder Path] & [Name]))), 展开工作簿 = Table.ExpandTableColumn(提取数据, "数据", {"Data", "Item"}, {"Data", "Sheet名"}), 取第一张表 = Table.SelectRows(展开工作簿, each [Sheet名] ="Sheet1"), 合并数据 = Table.Combine(取第一张表[Data])in 合并数据
先找文件夹里所有文件,筛出.xlsx后缀的用Excel.Workbook读每个文件,拆出里面的表和页签名只留“Sheet1”,避免抓错页签Table.Combine把多个表摞成一个大表以后新月份丢文件夹,刷新就自动加进去,不用再拼表
乱码日期难排序?M帮你洗清爽
导出的日期常是“2026/13/45”“Jan-26”混着来,排序比猜谜还累。M能把奇奇怪怪的日期统一成标准款,排起来顺溜。
let 源 = Excel.CurrentWorkbook(){[Name="乱日期表"]}[Content], 转文本 = Table.TransformColumnTypes(源,{{"日期列", type text}}), 替换分隔符 = Table.ReplaceValue(转文本,"-","/",Replacer.ReplaceText,{"日期列"}), 补零月日 = Table.TransformColumns(替换分隔符, {{"日期列", each Text.PadStart(Text.Split(_,"/"){0},2,"0") & "/" & Text.PadStart(Text.Split(_,"/"){1},2,"0") & "/" & Text.Split(_,"/"){2}}}), 认日期 = Table.TransformColumnTypes(补零月日,{{"日期列", type date}})in 认日期
先把日期当文本读,省得直接报错卡壳把横杠换斜杠,统一分隔样式月、日不足两位的前面补0,比如“3”变“03”再转成date类型,Excel就能乖乖排序不管原始格式多野,洗完都是“2026/03/05”这种正经样
分组统计太绕路?DAX秒出结果
做部门业绩汇总,用透视表得拖字段、改布局,换个维度又重来。DAX写个度量值,点选维度立刻出数,还能跟着切片器跑。
部门业绩汇总 = SUM('销售表'[金额])+CALCULATE( SUM('销售表'[金额]), USERELATIONSHIP('销售表'[辅助日期], '日历表'[日期]))
SUM直接算金额合计,基础活儿一步到位CALCULATE能临时切换计算用的关系,比如用辅助日期关联日历USERELATIONSHIP打开隐藏的关系,让不同日期维度都能算把度量值扔透视表,行放部门、列放月份,点哪显哪不用反复调透视表结构,换角度看数据像翻书一样快
累计求和卡壳?DAX一路加到底
看全年业绩进度,每月累计数要手动加,改数据就得重算。DAX的累计函数顺着时间轴自己滚,数据一变立刻更。
累计销售额 = CALCULATE( SUM('销售表'[金额]), FILTER( ALL('日历表'), '日历表'[日期] <= MAX('日历表'[日期]) ))
CALCULATE圈定计算范围,FILTER挑符合条件的行ALL('日历表')暂时放开切片器的日期过滤,看全表时间线MAX('日历表'[日期])抓当前上下文的最大日期,比如现在是6月就取6月最后一天条件“<=”让函数把之前所有月的金额加起来,形成累计切到哪个月,累计数就停在当月,进度条一目了然
同比环比看趋势?DAX两步显神通
对比今年和去年同期的业绩,普通公式要跨表找数、锁定单元格,一扩展就乱。DAX用时间智能函数,像装了导航,自动找对同期数据。
去年同期 = CALCULATE( SUM('销售表'[金额]), SAMEPERIODLASTYEAR('日历表'[日期]))环比增长 = DIVIDE( SUM('销售表'[金额]) - [去年同期], [去年同期], BLANK())
SAMEPERIODLASTYEAR让系统自动跳回去年的同一时间段,不用手动减365天同比度量值直接给去年数,环比用今年减去年再除以去年DIVIDE自带防除零保护,分母为0就显示空白,不会报错配合日历表,月、季、年的同比环比都能一键切看趋势不用翻旧表、输复杂公式,数字自己会说话
更多干货点我头像进主页,每天更新