坚持学习,不断进步
一、从一顿混乱的午餐订单开始
想象一下:你是公司新来的数据分析师,午餐时间到了!同事小张跑过来:“哥们,帮个忙!这是咱们部门这个月的午餐订单,老板想知道大家都爱吃什么,能快速帮我看看吗?”
我们就从这个简单的案例开始循序渐见学习M语言!
二、M语言是什么?你的数据“翻译官”
首先,别被“编程语言”吓到!M语言就像你的私人数据翻译官👨💼:
三、第一招:打开Excel文件(敲门进屋)
基础版:最简单的开门方式
得到的结果如下:
解释🎤
let...in:M语言的“开始”和“结束”标记。let后面是步骤,in后面是最终结果
//:这是注释,M语言会忽略它。就像你读书时的铅笔备注✏️
Excel.Workbook():这就是“敲门”的动作!告诉M语言:“嘿,我要读一个Excel文件!”
{[Item="Sheet1"]}[Data]:有点奇怪的语法对吧?其实很简单:
Table.PromoteHeaders:Excel的第一行通常是标题(日期、姓名、菜品...),这个函数就是把第一行“提拔”成列名
四、第二招:挑出想要的列(超市购物车)
现在数据进来了,但你可能只需要其中几列。就像去超市,你只需要买牛奶、面包、鸡蛋,不会把整个货架搬回家吧?
场景:老板只要看“谁点了什么”
结果如下:
更多购物场景 🛒
只要吃的相关:
结果如下:
只要平台和价格(财务对账用):
结果如下:
📝 语法小贴士:
五、第三招:选出需要的行(找人聊天)
有时候数据太多,我们只需要其中一部分。就像聚会时,你只想和几个朋友聊天,不需要和全场200人都打招呼。
场景1:只看最近一周的订单
场景2:只看某几个人的订单
结果如下:
场景3:只看贵的外卖(超过30元)
🤔 “each”是什么鬼?
each是M语言里的“每一条”,你可以理解为:
六、组合拳!一次性搞定 🥊
现在来个真实场景:“找出最近3天,吃超过25元外卖的同事,只要他们的姓名和菜品”
先筛选行:最近3天 & 超过25元
结果如下:
再选择列:只要姓名和菜品
结果如下:
七、常见翻车现场及救援 🚑
翻车1:列名写错了
// 错误示范:列名是"菜品",你写成了"菜名"Table.SelectColumns(数据, {"姓名", "菜名"}) // 报错!// 正确姿势:先看看有哪些列名// 可以在Power Query编辑器里查看,或者:列名列表 = Table.ColumnNames(数据)
翻车2:日期格式不对
// 如果日期列进来是文本格式,先转换一下转换日期 = Table.TransformColumnTypes(数据, {{"日期", type date}})
翻车3:文件找不到
// 可以用相对路径(如果文件在同一个文件夹)文件位置 = "午餐订单.xlsx",// 或者让用户自己选(高级技巧,以后讲)
八、实战演练:3分钟完成老板任务 ⏱️
回到最开始的问题,现在你可以这样回答小张:
运行结果:
“看!”你把结果给小张,“大家最爱吃宫保鸡丁,点了7次!”
小张眼睛都亮了:“太神了!怎么做到的?”
你神秘一笑:“M语言,数据世界的魔法咒语✨”
九、今日咒语总结 📚
基础题:导入你自己的一个Excel文件,只选择其中的3列
进阶题:选出价格在20-30元之间的订单
挑战题:组合使用,选出最近一周、特定菜品、只要姓名和价格列
记住:每个M语言大师都从“Hello Excel”开始。今天你学会了打开Excel、挑选数据,已经迈出了重要的第一步!
下次课程预告:《M语言第二课:给数据“整容”——清洗和转换》 我们将学习如何修改列名、处理空值、拆分列等实用技巧!
一句话记住今天的内容:“let打开门,Select挑着拿,each是每条,in出结果啦!” 🎉
祝你编码愉快,记得按时吃饭(毕竟看了这么多午餐数据)!🍱
今日练习课件:
链接:https://pan.quark.cn/s/4738b2388e77