BI神器Power Query(26)-- 使用PQ实现表格多列转换(2/3)

news2024/11/29 18:32:23

实例需求:原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中,att1、att3、att5为一组,att2、att3、att6为另一组,数据如下所示。

更新表格数据

原始数据表:

Col1Col2Att1Att2Att3Att4Att5Att6
AAADDDXOalphadelta100400
BBBEEEYPbetavega200500

结果数据表:

Col1Col2cn1cn3cn3
AAADDDXalpha100
AAADDDOdelta400
BBBEEEYbeta200
BBBEEEPvega500

示例代码

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Part1 = Table.CombineColumnsToRecord(Source, "Part1Rec", {"Att1", "Att3", "Att5"}, [DisplayNameColumn="Att1", TypeName="CmbCol"]),
    Part2 = Table.CombineColumnsToRecord(Part1, "Part2Rec", {"Att2", "Att4", "Att6"}, [DisplayNameColumn="Att2", TypeName="CmbCol"]),
    AddTable = Table.AddColumn(Part2, "NewTab", each Table.FromRows({
            Record.FieldValues([Part1Rec]), 
            Record.FieldValues([Part2Rec])
    })),
    RemovedRec = Table.RemoveColumns(AddTable,{"Part1Rec", "Part2Rec"}),
    Output = Table.ExpandTableColumn(RemovedRec, "NewTab", {"Column1", "Column2", "Column3"}, {"cn1", "cn2", "cn3"})
in
    Output

代码解析:
第2行代码加载源表格,表格名称为Table1。
第3行代码使用Power Query函数Table.CombineColumnsToRecord将"Att1"、“Att3"和"Att5"合并为一个记录,并设置显示名称为"Att1”。
第4行代码与第3行代码类似,合并"Att2"、“Att4"和"Att6”。

在这里插入图片描述

第5~8行代码使用Table.AddColumn函数创建一个新列"NewTab",其中包含两个记录(Part1Rec和Part2Rec)的表格。

在这里插入图片描述

第9行代码使用Table.RemoveColumns函数移除不再需要的Part1Rec和Part2Rec列。
第10行代码使用Table.ExpandTableColumn函数展开"NewTab"列,以获取分列展示的属性值,并设置列名为"cn1"、“cn2"和"cn3”。

转换结果如下图所示。

在这里插入图片描述


总结:
使用Power Query函数和操作步骤来实现了将原始表格列数据按照指定规则转换成分列展示的目标格式,使用Table.CombineColumnsToRecord可将多列数据合并到一个记录中。

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

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

相关文章

APP或小程序突然打开显示连接网络失败,内容一片空白的原因是,SSL证书到期啦,续签即可

由于我们使用的是https,所以SSL证书到期了,通过https进入读取内容的APP或网站或小程序就会打开后连接网络失败,出现空白,这是因为我们申请的SSL证书到期了,因为我们申请的证书有效期有时是1个月或3个月,到期…

建筑能源管理(2)——建筑用能分类与计算方法

1、按输入建筑的能源形式分类 根据《民用建筑能耗分类及表示方法》GB/T 34913-2017,建筑用能边界位于建筑入口处(图2.2),对应为满足建筑各项功能需求从外部输入的电力、燃料、冷/热量及可再生能源等,其中冷热量由外部区域能源系统制备&#…

2023年中国体育赛事行业现状及趋势分析:体育与科技逐步融合,推动产业高质量发展[图]

体育赛事运营是指组织体育赛事或获取赛事版权,并进行赛事推广营销、运营管理等一系列商业运作的运营活动。体育赛事运营相关业务主要包括赛事运营与营销、赛事版权运营两个部分。 体育赛事运营行业分类 资料来源:共研产业咨询(共研网&#x…

线性代数+分治:446E

https://codeforces.com/problemset/problem/446/E 把官方题解翻译了一遍 考虑暴力,肯定想到dp,然后变成矩阵。设用代替 (这样子数之间的差值不会变化,但对于问题的处理能方便很多) 我们先令(也就是初始…

C++ 并发编程实战 第八章 设计并发代码 一

目录 8.1 在线程间切分任务 8.1.1 先在线程间切分数据,再开始处理 8.1.2 以递归方式划分数据 8.1.3 依据工作类别划分任务 借多线程分离关注点需防范两大风险 在线程间按流程划分任务 8.2 影响并发性能的因素 8.2.1 处理器的数量 8.2.2 数据竞争和缓存兵乓…

蓝桥等考Python组别九级005

第一部分:选择题 1、Python L9 (15分) 运行下面程序,可以输出几行“*”?( ) for i in range(0, 2): for j in range(0, 5): print(*, end ) print() 5234 正确答案:B 2、P…

瑞云介绍使用ZBrush和Marmoset工具包制作的风格化巨怪战斗机

Renderbus瑞云渲染的小编今天给大家介绍下Gianluca Squillace使用 ZBrush 和 Marmoset 工具包制作巨怪战士的一些技巧。这位艺术家还贴心地告诉大家,有些步骤是可以省略跳过的,这样就可以节省时间,帮助我们快速完成角色的创作啦。快速有用的步…

Idea上传项目到gitlab并创建使用分支

Idea上传项目到gitlab并创建使用分支 1 配置git 在idea的setting中,找到git,配置好git的位置,点击Test按钮显示出git版本号,则说明配置成功。 2 项目中引入git Idea通过VCS,选择Create Git Repository 在弹出的对话框…

阿里云数据库排行榜_云数据库优惠活动大全

阿里云数据库大全:RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB,数据仓库如AnalyticDB MySQL版、PostgreSQL、ClickHouse,阿里云还提供数据库管理工具如数…

com.alibaba.csp.sentinel.slots.block.flow.FlowException: null--记录一次报错

阿丹: 记录一次开发中遇到的错误。 报错信息描述: 2023-10-01 09:47:57.263 ERROR 39572 --- [nio-9100-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exce…

高仿互站网多套模板完整源码

高仿互站网 后台手机端两套模板 电脑端二十套模版,简单介绍几个功能, 支持用户注册开店 开店申请,支持用户发布自己商品 支持卡密形式或实物形式, 支持用户自己发布求助 任务大厅功能,源码完整 更多功能自己去发现吧…

S型速度曲线轨迹规划(约束条件为速度和位移)

S型速度曲线规划的基础知识可以查看下面这篇博客: 带平滑功能的斜坡函数(多段曲线控温纯S型曲线SCL源代码+完整算法分析)_RXXW_Dor的博客-CSDN博客PLC运动控制基础系列之梯形速度曲线,可以参看下面这篇博客:PLC运动控制基础系列之梯形速度曲线_RXXW_Dor的博客-CSDN博客运…

桂院校园导航 静态项目 二次开发教程 1.2

Gitee代码仓库:桂院校园导航小程序 GitHub代码仓库:GLU-Campus-Guide 先 假装 大伙都成功安装了静态项目,并能在 微信开发者工具 和 手机 上正确运行。 接着就是 将项目 改成自己的学校。 代码里的注释我就不说明了,有提到 我…

【Linux】常用命令总结(简略版)

【Linux】常用命令总结(简略版) 前言常用快捷键操作: 文件管理1、pwd 显示当前路径2、ls查看目录(dir 功能一样)3、cd 切换到指定路径4、mkdir 创建一个空目录5、rmdir 删除一个空目录6、rm 删除文件或目录7、touch 创…

Cannot find member “window_fullscreen“ in base “OS“.

问题描述 Cannot find member “window_fullscreen” in base “OS”. 回溯方法 func _input(event):if event.is_action_pressed("toggle_fullscreen"):OS.window_fullscreen !OS.window_fullscreenget_tree().set_input_as_handled()问题截图 解决方案: 实现togg…

FreeRTOS(以STM32F1系列为例子)

目录 任务管理任务函数任务控制块顶层任务状态创建任务xTaskCreatexTaskCreateStaticxTaskCreateRestricted 任务优先级和心跳设置心跳设置优先级概述vTaskPrioritySetuxTaskPriorityGet 非运行态扩充阻塞态vTaskDelay挂起状态vTaskSuspend就绪状态完整的状态转换图延迟函数vTa…

【模型压缩】Distiller学习-初认识

Distiller学习-初认识 简介 Intel AILab的神经网络压缩框架,建立在Pytorch基础上 安装 压缩方法 权重正则化方法权重剪枝方法训练后量化方法训练时量化方法条件计算低质分解方法知识蒸馏方法 总体目录 核心代码实现 所有案例的配置文件 举例 初始化网络评价网络…

linux Mysql 8.0.16 安装搭建

文章目录 Mysql 搭建一、安装包下载二、创建用户组用户和修改权限三、配置my.cnf Mysql 搭建 一、安装包下载 mysql 下载地址:https://downloads.mysql.com/archives/community/ 这里有所有的mysql的版本,下载自己需要的版本,我们这里下载 …

2023年中国液压剪行业供需分析:随着基础设施建设发展,销量同比增长6.7%[图]

液压剪是一种利用液压系统驱动的剪切设备,主要用于对金属材料、塑料、纸张等进行剪切加工。液压剪具有高效、精确、稳定的特点,广泛应用于金属加工、机械制造、汽车制造、船舶建造等领域。 液压剪行业分类 近年来,中国政府加大了基础设施建设…

C/C++与汇编混合编程

1. C/C调用汇编 C/C想调用汇编代码必须要注意名称修饰的问题 名称修饰(name decoration): 一种标准的C/C编译技术, 通过添加字符来修改函数名, 添加的字符指明了每个函数参数的确切类型。主要是为了支持函数重载, 但对于汇编来说其问题在于, C/C编译器让链接器去找被修饰过的名…