Lazy loaded image一个案例学习理解let...in骨架函数的嵌套逻辑

type
status
date
slug
summary
tags
category
icon
password
notion image

(本文3000字,阅读需要8分钟左右)
我为你设计了一个“跨境电商最终售价计算”的业务场景。实操课件示例在下方下载。

一. 业务场景背景

假设你是一家跨境电商公司的财务。你们有一张产品报价表,但最终售价的计算规则比较复杂,取决于“销售渠道”:
  • 如果是“出口(Export)”渠道
    • 政策:可以退税,价格打9折( * 0.9 )。
  • 如果是“内销(Local)”渠道
    • 政策:需要缴纳消费税,价格上浮10%( * 1.1 )。
你希望在一个步骤里直接算出最终售价,并且为了公式清晰,你想把最终售价,即“打折价”或“含税价”先定义好,再做判断。

二. 模拟数据(复制到Excel)

将下表复制到Excel中,并通过“数据”——“来自表格/区域”,加载至PQ编辑器操作
产品名称
销售渠道
基础标价
蓝牙耳机
Export
100
智能手表
Local
200
充电宝
Export
50
手机壳
Local
20

三、具体操作步骤

  1. 【来自表格/区域】,数据加载进 PQ。
  1. 【高级编辑器】
  1. 你会看到类似这样的默认代码:
    1. 修改代码
        • 更改的类型 这一步骤代码的末尾加个逗号 ,
        • 在下面粘贴核心逻辑(见下方代码)。
    1. 把最后的 in 更改的类型 改成 in 计算最终售价
    1. 最终代码如下:
      notion image
      这样,你就成功把“死代码”变成了处理“活数据”的实战操作了!

      四、 代码深度解读

      我们重点看 第 3 步 (计算最终售价),这里发生了什么?

      外层 (大房子)

      • Power Query 正在执行 Table.AddColumn
      • 它启动了 each 循环,准备遍历表格的每一行(比如第一行“蓝牙耳机”)。

      内层 (小抽屉 / 嵌套的 let ... in)

      当处理“蓝牙耳机”这一行时,它并没有急着直接算结果,而是先打开了一个临时抽屉
      1. 定义 出口价:它先算了一下 100 * 0.9 = 90。把这个数暂存在抽屉里,贴个标签叫“出口价”。
      1. 定义 内销价:它又算了一下 100 * 1.1 = 110。把这个数也暂存在抽屉里,贴个标签叫“内销价”。
      1. 执行 in 判断
          • 逻辑:if [销售渠道] = "Export" ...
          • 因为这一行是 Export,所以取出抽屉里的 出口价 (90)。
          • 注意:那个 内销价 (110) 虽然算出来了,但因为没被选中,用完就丢掉了。

      为什么要这么写?(好处)

      如果不用嵌套,你的公式得写成这样:
      看起来好像更简单?但在复杂场景下,嵌套写法的优势就出来了:
      1. 逻辑解耦:你可以把复杂的数学公式(比如税费计算可能包含十几项)先封装成 出口价 这样一个简单的名字。
      1. 避免重复计算:如果你的判断逻辑很复杂,或者需要在多处引用这个计算结果,先定义变量可以避免写多遍同样的公式。
      1. 可读性极高:别人读你的代码时,看到 let 出口价 = ... 就知道你在干嘛,最后看 if ... then 出口价 就非常像自然语言。

      总结

      在这个案例中:
      • 更改的类型 是所有人都能看到的全局步骤
      • 出口价内销价 是只有在计算“最终售价”这一列时,且仅在当前行里才存在的局部临时变量。出了这一行,谁也不认识它们。
       

      【扫码识别下发二维码,获取本文使用到的及历史以来提及、发布的相关精选和原创资料文件,和我们一起充电,加入后可享受每月6次免费咨询提问,帮助解决您的特定问题!】

      如果本篇文章对您有帮助或启发,请帮我们点赞、转发、推荐、关注,让更多想转型财务BP、锻造数据分析和可视化洞察能力的财务同行们看到,关注【老汪洞察】,不迷路!
      notion image
      notion image
       
      温馨提示
      🙏🏻
      如果您不想错过【老汪洞察】的文章,请将我们设为"星标",这样每次最新文章推送才会第一时间出现在您的订阅列表里。 方法:点击文章页面左上角蓝色文字“老汪洞察”进入主页,点击关注后,再点主页右上角"...",然后选择"设为星标",即可完成,感谢您的支持。
       
      上一篇
      EP019:理解上下文(each)和((x)=>)嵌套,解决中国式排名问题
      下一篇
      EP018:理解上下文(each)和((x)=>)嵌套,解决国际标准排名问题
      Loading...
      文章列表
      让财税成为经营的力量
      管理报表
      从Power Query到Power BI,入门到精通
      699课程讲义
      VBA小工具
      电脑与网络
      知识运用