Excel更新靠复制?PowerBI让你躺赢
一句话核心价值点:用Excel365自带的PowerQuery与PowerPivot,把反复粘贴、手动刷新的苦差事变成自动跑的数据流,让2026年的你准点下班还能秀出专业范儿。
目录
数据合并像搬砖?一键收齐全年表
办公室常遇到:每月一张销售表,年底得拼成一张,复制粘贴到手软还怕漏行。用PowerQuery的M,把文件夹当数据源,一次读入2026年12张表:
let 源 = Folder.Files("C:\2026销售数据\"), 筛选Excel = Table.SelectRows(源, each [Extension] = ".xlsx"), 读取内容 = Table.AddColumn(筛选Excel, "数据", each Excel.Workbook(File.Contents([Folder Path] & [Name]))), 展开表格 = Table.ExpandTableColumn(读取内容, "数据", {"Name", "Data"}, {"文件名", "表"}), 取第一表 = Table.SelectColumns(展开表格,{"文件名", "表"}), 合并所有 = Table.Combine(取第一表[表])in 合并所有
原理很简单:Folder.Files把文件夹里文件清单抓出来,挑出.xlsx后用Excel.Workbook读内容,再把每张表的Data列拼一起。这样2026年新月份表丢进文件夹,刷新一下全收进来,不必再开十几个文件手工粘。
列名乱飞难对齐?智能扶正省盯屏
有时不同人做的表,同意思的列名字五花八门,比如“销售额”“SaleAmt”“金额”,合并后列对不齐。用M先统一列名再合:
let 源 = 合并所有, 重命名1= Table.RenameColumns(源,{{"销售额", "金额"}, {"SaleAmt", "金额"}}), 删多余列 = Table.SelectColumns(重命名1, {"日期", "金额", "地区"}), 填充空值 = Table.FillDown(删多余列,{"地区"}), 去空格 = Table.TransformColumns(去空格, {{"地区", Text.Trim}})in 去空格
思路是先用RenameColumns把不同名字指向同一列,再用SelectColumns锁定要用的字段,FillDown补掉空白地区,Trim清掉首尾空格。列名乖乖排好队,后续分析不会因为名字打架卡壳。
重复干活太磨人?增量抓取稳又轻
每天导一次全量数据,文件越来越大,刷新慢到喝完茶还没完。用M设增量条件,只拿2026年新增的行:
let 源 = Excel.CurrentWorkbook(){[Name="全量表"]}[Content], 上次日期 = List.Max(源[日期]), 新数据 = Excel.Workbook(File.Contents("C:\每日导入\20260126.xlsx")), 取表 =新数据{0}[Data], 筛选新增 = Table.SelectRows(取表, each [日期] > 上次日期)in 筛选新增
原理是用List.Max找出现有数据的最大日期,新文件只留比它大的行,避免每次扛整座山。数据多了也不怕,刷新照样快,电脑不哼哼,你也能喘口气。
跨表汇总眼发花?关系牵线秒出数
销售表和产品表分开存,想按产品类别看业绩,得来回切表脑子打结。在PowerPivot建DAX度量,用关系链直接算:
总销售额 := SUM(Sales[金额])类别占比 := DIVIDE( CALCULATE([总销售额], ALLEXCEPT(Product, Product[类别])), CALCULATE([总销售额], ALL(Product)))
Sales与Product通过产品ID建立关联后,CALCULATE能跨表过滤,ALLEXCEPT保留类别维度,ALL清掉类别限制求整体。结果一拉透视表,类别和占比同时现身,不用手写一堆VLOOKUP绕圈圈。
日期切片不会玩?时间轴上自由滑
老板临时要看2026年Q1或最近30天,手动改公式像拆炸弹。DAX配合透视表切片器,让时间自己听话:
近30天销售 := CALCULATE( [总销售额], DATESINPERIOD(Calendar[日期], TODAY(), -30, DAY))季度销售 := CALCULATE( [总销售额], DATESBETWEEN(Calendar[日期], STARTOFMONTH(DATE(YEAR(TODAY()), QUARTER(TODAY())*3-2, 1)), ENDOFQUARTER(TODAY())))
DATESINPERIOD按今天倒推30天,DATESBETWEEN抓本季首尾,切片器选哪段就出哪段数。时间维度不再是绊脚石,分析像滑滚轮一样顺滑。
指标随筛就变脸?动态度量显神通
同一个表要既能看销售额又能看利润,筛选器一点就得换公式太费事。写个参数表驱动的动态度量:
动态指标 := SWITCH( SELECTEDVALUE(Param[指标]), "销售额", SUM(Sales[金额]), "利润", SUM(Sales[利润]), "数量", SUM(Sales[件数]), BLANK())
Param表提前写好“指标”列的选项,SELECTEDVALUE抓当前选的值,SWITCH对应不同聚合。透视表里换选项,数字立马跟着变,像给报表装了变形按钮。
金句收尾
手动复制是体力活,自动刷新是技术活。把重复藏进代码,把时间还给生活。关系是数据的桥,度量是分析的魂。会点按钮只是入门,会搭体系才是高手。2026年的效率,不是拼手速,是拼思路。
更多干货点我头像进主页,每天更新