【效率系列】简化繁杂表单数据处理,迅速增强办公数字化能力

news2024/11/25 14:32:58

 

写在前面 

数据处理是数据分析的奠基石,只有使用处理干净的数据,分析才会产生价值。简单而言,数据处理的终极目的是将非结构化数据转换为结构化数据。

虽然数据处理自身未必直接产生数据价值,但其过程往往相当耗时,因此如果无法高效完成数据整理任务,必将影响最终的数据分析进程。

通过本文内容的学习能帮助大家进一步提高数据整理的能力和效率,达到事半功倍的效果。无论您在使用Excel或Power BI,都可以用本文讲解的技巧。

案例讲解

1. 处理结构化复杂表单数据

  • 如何对标题与内容同行的表进行结构化处理?

  • 如果对标题与内容同单元格的表处理?

在日常业务中经常遇到类似图1这种非结构化的数据报表,经过数据处理后,非结构化表将被转换为下图的结构化数据表。

本文将介绍两种常用的表单处理方法。

 非结构化的原始数据表

图片

经过结构化处理的数据表

图片

2. 处理标题与内容同行的数据表

以【文件夹】类型获取两个示例文件,再用Excel.Workbook函数提取表内容,为了行文方便,我们可以右击展开应用的步骤,选择【重命名】选项简化名称(此处改为GET),见下图。

图片

展示一个示例以方便读者理解,单击fx图标添加一个新步骤,然后添加以下M函数公式,代码的作用是获取GET步骤中的[Data]列数据,{0}代表第一个表,{Column2}{1}对应企业名字内容所在之处,见下图。

图片

#table({"企业名称"},{{#"GET"[Data]{0}[Column2]{1}}})

通过以上方法,便可按规律获取其他相对应字段信息,删除GET之后的步骤,点击【自定义列】选项并添加以下完整的M代码,代码中的 [Data]是对上一步中的相关列引用,用户可在快照中观察提取的数据内容,见下图—添加自定义列中的M公式

#table({"企业名称","培训项目","培训日期","联系人","培训费用","电话","邮箱"},{{[Data][Column2]{1},[Data][Column4]{1},[Data][Column6]{1},[Data][Column2]{2},[Data][Column4]{2},[Data][Column6]{2},[Data][Column2]{3}     }})

图片

生成自定义列后,我们便可以删除【Data】列,并将【自定义】列展开,如下图—查看自定义列中的Table结构数据。

最终的结果见图 2。

图片

3. 处理标题与内容同单元格的数据表

另外一种典型的非结构化表结构是标题与内容处于同一单元格中。 在图7中,行2和行3为合并单元格,本例介绍将员工数据进行结构化处理,见图8。解题思路是将表头与表身进行分别的处理,然后将它们合并。

非结构化的原始数据 

图片

处理完成的结构化数据表

图片

与前面示例相似,我们以【文件夹】类型获取两个示例文件,这里的唯一特殊地方是我们会保持工作簿【Name】字段作为后边的合并之用,如下图—通过文件夹形式读取数据后并提取其中的Table

图片

此处会把原来的表改名为【Body】,并进行复制并改名为【Headers】,复制该查询(读者可自行改名)。

图片

继续处理【Body】查询,为其添加【自定义列】并添加以下M函数公式,处理结果快照见图——添加自定义列获取Table中的结构化数据。

图片

Table.RemoveLastN(Table.PromoteHeaders(Table.Skip([Data],3) ) ,1)/*自定义列其实是有3个M函数的嵌套组合而成,最内侧Table.Skip表示将表头进行剔除、中间层的第2个Table.PromoteHeaders表示将表头提升、最外围的Table.RemoveLastN是去除第7行的冗余信息.*/ 

将自定义列展开并且保留始终保留【Name】字段,见图—完成表身的结构化数据处理。至此,已经完成了表身的数据处理。

图片

接下来我们要处理表头的数据,返回前面复制的【Headers】并选中该查询,为其添加【自定义列】,并添加以下M函数公式,见图—进行表头的结构化数据处理。

图片

Table.Range([Data],1,2)// 这段代码是提取Excel行2与行3的员工信息

提取完成后,展开【自定义列】,提取原表头的员工信息、职位、员工号码等信息,参考下图—进行拆分为行操作,仅保留相关列。

图片

将【Column1】中所有的空值进行筛选后去除,然后进行【按分隔符拆分列】操作,分隔符为【冒号】,这样便将表头信息描述和具体信息名称拆分为两列了,见下图—进行拆分为列操作。

图片

选中【Column1.1】,并对其进行透视操作,【聚合值函数】为【不要聚合】方式,单击【确定】按钮,结果见图 ——进行透视列操作。至此,完成了对表头的数据处理。

图片

依据【Name】字段,对两个表进行合并操作,在菜单中选择【合并查询】-【将查询合并为新查询】选项,见下图——将表头与表身进行合并查询操作

图片

在【合并】对话框中分别选中【Body】和【Headers】中的【Name】字段,然后使用【左外部】联接种类,点击【确定】按钮,见下图——对二表进行左外部合并操作。

图片

合并完后将【Headers】字段展开并选择相关的字段信息,见图15,删除【Name】字段,最终获得图8中的结果。

图片

图书推荐

图书名称:

  • 《征服Power BI:提升办公数字化能力的45个实战技巧》

图书介绍

《征服Power BI:提升办公数字化能力的45个实战技巧》是一本关于Power BI进阶知识的实战类图书,将Power BI的主要功能融入45个高级应用技巧中,每个技巧都以解决实际商业分析或商业分析BI方案为导向。 

 本书将Power BI功能分为六大知识模块:数据处理模块介绍了将非结构化数据转换为结构化数据的相关方法;DAX模型分析模块介绍了定义数据表之间的关系、创建度量和计算列,以及DAX建模等核心知识;可视化应用模块按类介绍了可视化对象个体,以及整体提升报表效果的方法;数据发布与共享模块介绍了分享数据流、数据集、数据市场,创建和管理指标、管道,创建多语言和视角等数据分享功能;Power Platform与Microsoft 365集成模块介绍了Power BI与其他工具结合的应用案例;企业应用模块介绍了与Power BI报表开发相关的功能。

参与方式

图书数量:本次送出 4 本   !!!⭐️⭐️⭐️
活动时间:截止到 2023-08-17 12:00:00

抽奖方式:

  • 评论区随机抽取

参与方式:

  • 关注博主、点赞、收藏,评论本文

中奖名单 

🍓🍓 公布时间🍓🍓

 中奖名单:请关注博主动态

名单公布时间:2023-08-17 下午

🍓🍓 获奖名单🍓🍓

 

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

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

相关文章

【Vue3-Router】历史记录

replace App.vue <template><h1>hello world</h1><div><!-- replace 不保存历史记录 --><router-link replace to"/">login</router-link><router-link replace style"margin-left: 10px;" to"/reg&q…

高效实用小工具之Everything

一&#xff0c;简介 有时候我们电脑文件较多时&#xff0c;想快速找到某个文件不是一件容易的事情&#xff0c;实用windows自带的搜素太耗时&#xff0c;效率不高。今天推荐一个用来搜索电脑文件的小工具——Everything&#xff0c;本文将介绍如何安装以及使用everything&…

Redis——三个特殊的数据类型+事务

概述 全称为远程字典服务。 Redis——基础篇(包含redis在云服务上的docker化安装和连接以及常用命令)_连接docker中的redis_北岭山脚鼠鼠的博客-CSDN博客 Redis能干什么&#xff1f; 1.内存存储、持久化&#xff0c;内存中是断电即失&#xff0c;因此持久化很重要&#xff…

C++ 虚继承

C棱形继承 在 C 中&#xff0c;在使用 多继承 时&#xff0c;如果发生了如果类 A 派生出类 B 和类 C&#xff0c;类 D 继承自类 B 和类 C&#xff0c;这时候就发生了菱形继承。 如果发生了菱形继承&#xff0c;这个时候类 A 中的 成员变量 和 成员函数 继承到类 D 中变成了两…

开源可商业运营的ChatGpt网页源码v1.2.2

&#x1f916; 主要功能 后台管理系统,可对用户,Token,商品,卡密等进行管理 精心设计的 UI&#xff0c;响应式设计 极快的首屏加载速度&#xff08;~100kb&#xff09; 支持Midjourney绘画和DALLE模型绘画,GPT4等应用 海量的内置 prompt 列表&#xff0c;来自中文和英文 一键导…

CV_tutorial1

CV Entry-Level Recurrent Neural Networks序列数据sequence data语言模型languag model循环神经网络recurrent neural networks门控循环单元gated recurrent unit长短期记忆网络long short-term memory OpenCV 图形图像操作文档矫正Gamma变化开运算 传统图像分割分水岭算法 Re…

NX/UG二次开发—建模—文字中心线提取思路简介

一、中心线提取 1、离散文字平面&#xff1a; 离散文字平面&#xff0c;构建一个二维矩阵数组&#xff08;实际操作时用的一维数组&#xff09; 1.1最小边界盒子&#xff1a; 可以计算文字平面的最小边界盒子&#xff0c;然后按步距在平面上采点&#xff0c;优点是点距比较…

【TODO】米哈游20230813笔试第三题

是计算抽中什么当期五星的期望。 现在的程序结果是99.6087。结果不对&#xff0c;有时间再调。 #include <iostream> #include <bits/stdc.h> typedef long long LL; using namespace std;int n 90; double p; // double min_p 1e-7; double min_p 0.0000000000…

根据源码,模拟实现 RabbitMQ - 通过 SQLite + MyBatis 设计数据库(2)

目录 一、数据库设计 1.1、数据库选择 1.2、环境配置 1.3、建库建表接口实现 1.4、封装数据库操作 1.5、针对 DataBaseManager 进行单元测试 一、数据库设计 1.1、数据库选择 MySQL 是我们最熟悉的数据库&#xff0c;但是这里我们选择使用 SQLite&#xff0c;原因如下&am…

什么是多线程?进程和线程的区别是什么?如何使用Java实现多线程?

文章目录 前言我们为什么要使用线程而不是进程来实现并发编程什么是线程进程和线程的区别如何使用Java实现多线程创建线程1.创建一个继承 Thread 类的线程类2.实现 Runnable 接口匿名内部类方式实现 Runnable 接口lambda 表达式实现 Runnable 接口 Thread 类的常见构造方法Thre…

NO.1 MyBatis配置文件:配置连接数据库的环境,实现数据库连接

目录 1、MyBatis配置数据库环境的连接方式 1.1连接方式一&#xff1a;MyBatis核心配置文件配置数据库连接信息 1.2连接方式二&#xff1a;在MyBatis核心配置文件中引入properties文件&#xff0c;配置数据库的环境 2、MyBatisd核心配置文件连接数据库的环境完整配置信息 3…

基于Matlab实现心电信号小波特征提取和对应疾病识别仿真(附上源码+数据集)

本文基于Matlab平台&#xff0c;研究了心电信号的小波特征提取方法&#xff0c;并应用于心电信号疾病识别仿真实验中。首先&#xff0c;介绍了心电信号的基本特征和常见的心电疾病。然后&#xff0c;详细阐述了小波变换的原理和方法&#xff0c;并提出了一种基于小波分解和小波…

[Leetcode] [Tutorial] 多维动态规划(未完待续)

文章目录 62. 不同路径Solution 62. 不同路径 一个机器人位于一个 m ∗ * ∗ n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。 问总共有多少条不同的路径&#xff1f; 示例…

线程转换状态,傻傻分不清等待和阻塞吗?你还在暴力的停止线程吗?

线程切换 线程创建之后&#xff0c;调用start()方法开始运行。当线程执行wait()方法之后&#xff0c;线程进入等待状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态&#xff0c;而超时等待状态相当于在等待状态的基础上增加了超时限制&#xff0c;也就是超…

StringJoiner

1、为什么要学习StringJoiner&#xff1f; 2、StringJoiner概述 StringJoiner跟StringBuilder一样&#xff0c;也可以看成一个容器&#xff0c;创建之后里面的内容是可变的。 2.1、作用 提高字符串的操作效率&#xff0c;而且代码编写特别简洁&#xff0c;但是目前市场上很少有…

用友时空KSOA SQL注入漏洞复现(HW0day)

0x01 产品简介 用友时空KSOA是建立在SOA理念指导下研发的新一代产品&#xff0c;是根据流通企业最前沿的I需求推出的统一的IT基础架构&#xff0c;它可以让流通企业各个时期建立的IT系统之间彼此轻松对话&#xff0c;帮助流通企业保护原有的IT投资&#xff0c;简化IT管理&#…

学习笔记整理-JS-03-表达式和运算符

[[toc]] 一、表达式和运算符 1. 表达式 表达式种类 算术、关系、逻辑、赋值、综合 二、JS基本表达式 1. 算术运算符 意义运算符加减-乘*除/取余% 加减乘除 加减的符号和数学一致&#xff0c;乘号是*号&#xff0c;除法是/号默认情况&#xff0c;乘除法的优先级高于加法和…

【软件工程】软件测试

软件测试的对象 软件程序文档 测试对象&#xff1a;各个阶段产生的源程序和文档。 软件测试的目的 基于不同的立场&#xff0c;对软件测试的目的存在着两种完全对立的观点。 &#xff08;1&#xff09;一种观点是通过测试暴露出软件中所包含的故障和缺陷(从用户的角度)&#xf…

ORB-SLAM2第一节---单目地图初始化

单目初始化 1.前提条件&#xff08;640*480&#xff09; 参与初始化的两帧各自的特征点数目都需要大于100.两帧特征点成功匹配的数目需要大于或等于100.两帧特征点三角化成功的三维点数目需要大于50. 2.针对条件三 流程如下 记录当前帧和参考帧&#xff08;第一帧&#xff…

计算机组成原理 汇编语言

..................................................