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

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

更新表格数据

原始数据表:

Col1Col2Att1Att2Att3Att4Att5Att6
AAADDDXOalphadelta100400
BBBEEEYPbetavega200500

结果数据表:

Col1Col2cn1cn3cn3
AAADDDXalpha100
AAADDDOdelta400
BBBEEEYbeta200
BBBEEEPvega500

示例代码

letSource = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],ChangedType = Table.TransformColumnTypes(Source,{{"Att1", type text}, {"Att2", type text}, {"Att3", type text}, {"Att4", type text}, {"Att5", type text}, {"Att6", type text}}),MergedPart1 = Table.CombineColumns(ChangedType,{"Att1", "Att3", "Att5"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Part1"),MergedPart2 = Table.CombineColumns(MergedPart1,{"Att2", "Att4", "Att6"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Part2"),UnpivotedOtherCol = Table.UnpivotOtherColumns(MergedPart2, {"Col2", "Col1"}, "Attribute", "Value"),RemovedColumns = Table.RemoveColumns(UnpivotedOtherCol,{"Attribute"}),Output = Table.SplitColumn(RemovedColumns, "Value", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"cn1", "cn2", "cn3"})
inOutput    

代码解析:
第2行代码加载源表格,表格名称为Table1。
第3行代码使用Table.TransformColumnTypes函数将属性列的数据类型更改为文本类型。
第4行代码使用Table.CombineColumns函数将"Att1"、“Att3"和"Att5"合并为一个列"Part1”,用逗号分隔。

使用Table.AddColumn函数也可以增加一列"Part1",其值为"Att1"、"Att3"和"Att5"的合并结果,与第4行代码的区别在于,此代码并不能删除被合并的3列。

= Table.AddColumn(ChangedType, "Part1", each [Att1] & "," & [Att3] & "," & [Att5])

第5行代码使用Table.CombineColumns函数将"Att2"、“Att4"和"Att6"合并为一个列"Part2”,同样用逗号分隔。

在这里插入图片描述

第6行代码使用Table.UnpivotOtherColumns函数,保留"Col2"和"Col1"列,将其他列转换成"Attribute"和"Value"列。

在这里插入图片描述

第7行代码使用Table.RemoveColumns函数移除不再需要的"Attribute"列。
第8行代码使用Table.SplitColumn函数按逗号分隔"Value"列,分为"cn1"、"cn2"和"cn3"三列。

转换结果如下图所示。

在这里插入图片描述


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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

山西电力市场日前价格预测【2023-10-02】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-02)山西电力市场全天平均日前电价为355.35元/MWh。其中,最高日前电价为521.18元/MWh,预计出现在18: 45。最低日前电价为309.36元/MWh,预计…

Windows权限维持

Meterpreter权限维持 Metasploit 框架提供了一个后渗透模块,可实现自动化地利用沾滞键的权限维持技术。 该模块将用 CMD 替换辅助功能的二进制文件( sethc, osk, disp, utilman ) use post/windows/manage/sticky_keys 设置session 提示&a…

双指针算法——复写零

双指针算法——复写零😎 前言🙌复写零板书分析:解题代码:B站视频讲解 总结撒花💞 😎博客昵称:博客小梦 😊最喜欢的座右铭:全神贯注的上吧!!&#…

Arm Cache学习资料大汇总

关键词:cache学习、mmu学习、cache资料、mmu资料、arm资料、armv8资料、armv9资料、 trustzone视频、tee视频、ATF视频、secureboot视频、安全启动视频、selinux视频,cache视频、mmu视频,armv8视频、armv9视频、FF-A视频、密码学视频、RME/CC…

3分钟学会设计模式 -- 单例模式

►使用场景 在编写软件时,对于某些类来说,只有一个实例很重要。例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统中可以多次查询数据库,但是只需要一个连接,而不是…

2023年中国艺术涂料市场发展历程及趋势分析:艺术涂料市场规模将进一步扩大[图]

艺术涂料是一种用于绘画和装饰,具有各种纹理或通过涂装手段后具有高装饰性的新型涂料。由于具有高度饱和的颜色、良好的遮盖力和可塑性,呈现立体装饰效果好、色彩搭配适当、风格独具特色的特点,而使得涂装出的饰面自然贴合、更加美观漂亮&…

【EasyPoi】SpringBoot使用EasyPoi自定义模版导出Excel

EasyPoi 官方文档&#xff1a;http://doc.wupaas.com/docs/easypoi Excel模版导出 引入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency…

数据结构与算法-(7)---栈的应用-(3)表达式转换

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…

【刷题笔记10.2】LeetCode: 罗马数字转整数

LeetCode: 罗马数字转整数 一、题目描述 二、分析 方法一&#xff1a; 将给定字符串s中的"IV", “IX”, “XL”, “XC”, “CD”, “CM” 全部替换为其他字符如&#xff1a;a, b, c, d, e, f 这种&#xff0c;然后就可以遍历累加了。 s s.replace("IV",…

Grafana 开源了一款 eBPF 采集器 Beyla

eBPF 的发展如火如荼&#xff0c;在可观测性领域大放异彩&#xff0c;Grafana 近期也发布了一款 eBPF 采集器&#xff0c;可以采集服务的 RED 指标&#xff0c;本文做一个尝鲜介绍&#xff0c;让读者有个大概了解。 eBPF 基础介绍可以参考我之前的文章《eBPF Hello world》。理…

Linux命令(二)(文件相关)

目录可以更快找到你想要的命令 1. 命令入门2. 文件(touch、vim、cat、more、mv)touch&#xff1a;用于创建空文件与修改时间戳选项用例 vim&#xff1a;文本编辑工具&#xff08;三种模式&#xff09;1. 命令模式&#xff1a;2. 插入模式3. 底线命令模式 cat&#xff1a;在终端…

网站使用SSL证书是趋势吗?

随着互联网技术的不断发展&#xff0c;网络安全问题日益受到重视。其中&#xff0c;SSL证书作为网站安全的基石&#xff0c;其重要性不言而喻。SSL证书能够加密网站与用户之间的通信&#xff0c;保护用户隐私&#xff0c;防止信息被窃取和篡改。因此&#xff0c;越来越多的网站…

Android 性能优化—— 启动优化提升60%

应用启动速度 一个应用App的启动速度能够影响用户的首次体验&#xff0c;启动速度较慢(感官上)的应用可能导致用户再次开启App的意图下降&#xff0c;或者卸载放弃该应用程序 本文将从两个方向优化应用的启动速度 : 1.视觉体验优化 2.代码逻辑优化 视觉优化 应用程序启动有…

KNN(下):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

初识Java 12-1 流

目录 Java 8对流的支持 流的创建 随机数流 int类型的区间范围 generate() iterate() 流生成器 Arrays 正则表达式 本笔记参考自&#xff1a; 《On Java 中文版》 ||| 流的概念&#xff1a;流是一个与任何特定的存储机制都没有关系的元素序列。 流与对象的成批处理有关…

链表经典面试题(二)

返回中间结点 1.中间结点的题目2.中间结点的图文分析3.中间结点的基本代码4.中间结点的优化代码 1.中间结点的题目 2.中间结点的图文分析 方法1&#xff1a;先求整体长度&#xff0c;再除以2&#xff0c;所得到的就是中间结点 方法2&#xff1a;双指针法&#xff0c;快指针走两…

读者写者问题—内含408真题

读者写者问题—含408 一、问题描述 一个数据问价或记录可以被多个进程共享&#xff0c;我们把只读该文件的进程称为“读者进程”&#xff0c;其他进程为“写者进程”。允许多个进程同时读一个共享对象&#xff0c;但不允许一个写者进程和其他写者进程或读者进程同时访问共享对…

使用ElementUI结合Vue完善主页的导航菜单和书籍管理以及后台数据分页查询

目录 动态树 数据表 案列 书籍管理 动态树 动态树&#xff08;Dynamic tree&#xff09;是一种数据结构&#xff0c;它可以在树中动态地插入、删除和修改节点。与静态树不同&#xff0c;静态树的节点是固定的&#xff0c;一旦构建完成就无法再进行修改。而动态树可以在运行时…

Leetcode 1239. 串联字符串的最大长度

文章目录 题目代码&#xff08;9.29 首刷部分看解析&#xff09; 题目 Leetcode 1239. 串联字符串的最大长度 代码&#xff08;9.29 首刷部分看解析&#xff09; class Solution { public:unordered_set<int> skip;unordered_set<char> used;int maxLength(vecto…

cesium 雷达扫描 (线行扩散效果)

cesium 雷达扫描 (线行扩散效果) 1、实现方法 使用ellipse方法加载圆型,修改ellipse中material方法来实现效果 2、示例代码 2.1、 <!DOCTYPE html> <html lang="en"><head><<