PowerQuery动态加载M公式

news2024/11/19 15:22:50

Power Query 是Excel中的强大数据处理与转换工具,如果需要“动态”处理数据,大家第一时间想到的是可以使用VBA,利用代码创建M公式,进而创建PQ查询,但是复杂的M公式可能有很多行, 使用VBA处理起来并不是很方便,并且用户打开工作簿文件时必须启用宏功能,代码才能发挥作用。

其实无需借助VBA,PQ内置功能就可以实现动态加载M公式,接下来使用一个简单的PQ示例进行演示。这个技巧通常用于动态执行Power Query脚本或表达式,允许在运行时构建和执行Power Query代码,以满足特定的需求。

基础原始数据保存在A列和B列中,使用PQ按照第一列统计汇总销售额,结果保存在E1开始的单元格区域,效果如下图所示。
在这里插入图片描述

PQ公式如下。

let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    更改的类型 = Table.TransformColumnTypes(源,{{"Date", type date}, {"Sales", Currency.Type}}),
    分组的行 = Table.Group(更改的类型, {"Date"}, {{"TotalSales", each List.Sum([Sales]), type nullable number}})
in
    分组的行

新建一个文本文件,将PQ公式保存为文本文件,此处文件名称为TotalSales.m,保存在D:\Temp目录中,如下所示。
在这里插入图片描述
新建一个PQ查询,在【高级编辑器】中替换为如下公式。

let
    Source = Text.FromBinary(File.Contents("d:\temp\TotalSales.m")),
    EvaluatedFormula = Expression.Evaluate(Source, #shared)    
in
    EvaluatedFormula

如下图所示。

在这里插入图片描述

保存查询,关闭PQ编辑器并上载至H1单元格开始的区域,如下图所示。

在这里插入图片描述

【代码解析】
使用 File.Contents 函数从文件 d:\temp\TotalSales.m 中读取文本内容,然后将这个文本内容作为表达式传递给 Expression.Evaluate 函数。同时,#shared 作为第二个参数传递给 Expression.Evaluate,以便表达式能够访问Power Query中共享的函数和变量。

注意:使用 Expression.Evaluate 时要小心,确保表达式的来源可信,以避免潜在的安全问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/962028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

只考一门数据结构!安徽工程大学计算机考研

安徽工程大学 考研难度(☆) 内容:23考情概况(拟录取和复试分析)、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文992字,预计阅读:3分钟 2023考情概况 安徽工程大…

程序员自由创业周记#8:怎么设计

软件的样子 就像建造房子,工人施工需要照着图纸,没有图纸直接上手施工倒是也可以,只是房子的质量和样子都不敢恭维。程序员在一定意义上与建筑工人很像,只不过他们码砖,我们码码。软件开发之前也需要提前设计好界面&a…

本地开机启动jar

1:首先有个可运行的jar包 本地以ruiyi代码为例打包 2:编写bat命令---命名为.bat即可 echo off java -jar D:\everyDay\test\RuoYi\target\RuoYi.jar 3:设置为开机自启动启动 快捷键winr----输入shell:startup---打开启动文档夹 把bat文件复…

交换空间和虚拟内存的区别

分析&回答 交换空间和虚拟内存的区别在于使用的系统不一样,产生的技术手段不一样 交换空间 Linux 中的交换空间(Swap space)在物理内存(RAM)被充满时被使用。如果系统需要更多的内存资源,而物理内存已经充满&am…

UG\NX CAM二次开发 插入工序 UF_OPER_create

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 插入工序 UF_OPER_create 效果: 代码: void MyClass::do_it() {tag_t setup_tag=NULL_TAG;UF_SETUP_ask_setup(&setup_tag);if (setup_tag==NULL_TAG){uc1601("请先初始化加工环境…

linux操作系统中环境变量详解

目录 1.环境变量的基本概念 2.查看环境变量 3.PATH 4.root和普通用户的HOME 5.和环境变量相关的命令 6.环境变量的组织方式 6.1通过代码获取环境变量 6.2通过第三方变量environ获取 6.3通过系统调用获取环境变量 6.4通过系统调用设置环境变量 1.环境变量的基本概念 …

R语言图形绘制

(1)条形图 > barplot(c(1,2,4,2,6,4,3,5)) > barplot(c(1,2,4,2,6,4,3,5),horiz TRUE) #besideTRUE 表示将多个组别的图形并排显示,使它们在水平方向上对齐 #而当 besideFALSE(默认值)时,多个组别的…

达梦8 在CentOS 系统下静默安装

确认系统参数 [rootlocalhost ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited【1048576(即 1GB)以上或 unlimited】 scheduling priority (-e) 0 file size (blocks, -f) unlimite…

IP地址、网关、网络/主机号、子网掩码关系

一、IP地址 IP地址组成 IP地址分为两个部分:网络号和主机号 (1)网络号:标识网段,保证相互连接的两个网段具有不同的标识。 (2)主机号:标识主机,同一网段内,主机之间具有相同的网…

程序员自由创业周记#9:最开心的事

人一天中最开心的时刻是什么时候?莫过于下班的时候;一天中最开心的事是什么?莫过于下班后干的任何事; 这么重要的时刻,能不能有一款产品只要手机在手就能知道还有多久下班,不论是手机在锁屏界面&#xff0c…

CSS学习笔记04

CSS笔记04 浮动 标准文档流 标准文档流就是浏览器按照各种元素标签排版布局中默认的状态。浏览器在渲染代码的时候是从左往右、从上到下开始渲染,元素也是从左往右、从上往下的流式排列。也就是没有被其他排版浮动和定位相关的 CSS 属性干扰的就叫标准文档流。标…

春秋云镜 CVE-2018-19422

春秋云镜 CVE-2018-19422 Subrion CMS 4.2.1 存在文件上传漏洞 靶标介绍 Subrion CMS 4.2.1 存在文件上传漏洞。CVE-2021-41947同一套cms。 启动场景 漏洞利用 admin/admin登陆后台管理界面 执行SQL命令,获取flag select load_file(/flag); 得到flag flag{174…

文心一言初体验,和ChatGPT语言理解能力比较

文章目录 第一个考验,语义理解第二个考验,历史问题的回答推荐阅读 百度旗下AI大模型文心一言宣布向全社会全面开放,所有用户都可以体验这款AI大模型了。要比较这两个语言模型,我们先设计好题目。 第一个考验,语义理解 题目1&…

mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案

一、冲突出现原因 在user表中将name字段设置唯一索引,添加逻辑删除字段del_flag(1为删除,0为未删除)之后,将name张四的字段删除,再添加一个name张四的记录则会出现冲突 二、解决 1.设置唯一索引组&#x…

YOLOV8模型使用-检测-物体追踪

这个最新的物体检测模型,很厉害的样子,还有物体追踪的功能。 有官方的Python代码,直接上手试试就好,至于理论,有想研究在看论文了╮(╯_╰)╭ 简单介绍 YOLOv8 中可用的模型 YOLOv8 模型的每个类别中有五个模型用于检…

[ROS]yolov5-7.0部署ROS

YOLOv5是一种目标检测算法,它是YOLO(You Only Look Once)系列算法的最新版本。与其它目标检测算法相比,YOLOv5在速度和准确性方面取得了显著的提升。在ROS(Robot Operating System)中使用Python部署YOLOv5可…

Redis-Cluster集群的部署(详细步骤)

一、环境准备 本次实操为三台机器,关闭防火墙和selinux 注:规划架构两种方案,一种是单机多实例,这里我们采用多机器部署 三台机器,每台机器上面两个redis实例,一个master一个slave,第一列做主库&#xff…

大数据专业毕业能从事什么工作

大数据从业领域很宽广,不管是科技领域还是食品产业,零售业等都是需要大数据人才进行大数据的处理,以提供更好的用户体验,优化库存降低成本预测需求。 大数据开发做什么? 大数据开发分两类,编写Hadoop、Spa…

怎么将pdf合并成一个?将pdf合并成一个的方法

在日常工作和学习中,我们经常会遇到需要将多个PDF文件合并成一个的情况。这不仅能够提高文件管理的便捷性,还能节省存储空间并使阅读更加流畅。那么,怎么将pdf合并成一个呢?在本文中,我将为您介绍几种简单实用的方法&a…

Java 枚举是什么?什么是枚举类?枚举类的用途?

目录 1. 什么是枚举? 2. 枚举类 3. 枚举类的用途 1. 什么是枚举? 我们可以从字面意思来理解,枚:一枚一枚的,举:举例,举出,将二者意思结合起来可以理解为一个一个的举出。 这样听…