秒杀所有付费软件!用Excel汇总100个格式错乱的PDF表格,老板都看呆了

汇总100个表头顺序不同的PDF表格 。 职场中遇到这样的问题会让很多人感到头皮发麻 , 即使是“职场老鸟”也不例外 。 很多人都能想到的方法就是利用付费软件将PDF一个一个的转换为Excel , 然后再汇总但是它们的表头顺序是不同的只能一个一个表格的调整顺序再复制粘贴 , 有一个粉丝表示需要汇总100个这样的文件 , 已经做了1天了还没搞定 , 有没有什么快速的方法呢?其实我们不必舍近求远 , 利用Excel中的powerquery这个功能只需要几分钟就能轻松解决这样的 。 操作也并不难 , 只需利用2个M函数就能轻松搞定 , 下面就让我们来一起操作下吧!
一、所需M函数
1.Pdf.Tables:获取Pdf中的表格数据
语法:=Pdf.Tables(pdfasbinary)astable
这个M函数的可选参数非常多 , 我们可以不做设置 , 它的必须参数是:pdfasbinary意思就说:pdf文件必须要转换为binary(二进制文件)才能放在第一参数中 。 astable是说函数返回的类型是表格
2.Table.PromoteHeaders:将第一行用作标题
语法:=Table.PromoteHeaders(tableastable)astable
tableastable它的意思是说这个函数的参数必须是一个table格式的数据 , astable是说函数返回的类型是表格
对于这类的函数可能大家都比较陌生感觉看不懂 。 今天的操作其实非常的简单 , 这两个函数我们都是仅仅为其添加了一个参数 , 下面我们就来着手汇总下PDF
二、汇总PDF
1.获取数据
首先我们需要将想要汇总的pdf文件都放在一个文件夹中 , 然后新建一个Excel点击【数据】功能组 , 在左侧找到【获取数据】【来自文件】【从文件夹】 。 跳出一个文件选择的窗口后我们找到存放PDF的文件夹然后点击打开 , powerquery就会加载获取数据 , 获取数据后会跳出界面 , 我们直接点击【转换数据】就会进入powerquery的编辑界面
秒杀所有付费软件!用Excel汇总100个格式错乱的PDF表格,老板都看呆了
文章图片
2.整理数据
进入PQ后我们仅仅保留前两列数据 , 将其余的数据都删掉 。 Name这一列是pdf文件的名称 , Content这一列是每个pdf对应的二进制文件 。 然后将name这一列放在最前面 , 紧接着我们【转换】找到【替换值】将后缀名.pdf替换掉 。 最后将name更改为文件名
秒杀所有付费软件!用Excel汇总100个格式错乱的PDF表格,老板都看呆了
文章图片
3.获取PDF中的表格
上一步PQ已经将pdf文件转换为了binary , 我们就可以使用Pdf.Tables来获取pdf文件中的表格了 。 需要点击【添加列】找到【自定义列】就会跳出添加自定义列的界面 , 随后我们在自定义公式这个输入:Pdf.Tables([Content])然后点击确定 , 这样的话就会多出一列自定义列 , 并且数据都是table
秒杀所有付费软件!用Excel汇总100个格式错乱的PDF表格,老板都看呆了
文章图片
随后我们点击自定义右上角的左右箭头来展开数据 , 在这里我们仅仅选择kind和date这两类数据 , 再把使用原始列明作为前缀的对勾去掉点击确定即可 , 这样的话在一个pdf文件就会对应2个kind分别是page和table , 这两个类型中的数据是一模一样的我们只需要任选一个作为数据即可 , 在这里我们选择table为数据 , 可以在kind字段中筛选table然后点击确定即可 , 随后我们就可以将kind和content这两个字段都删掉了 , 在这里data字段中的table对应的就是每个pdf文件中的表格 , 我们可以点击看一下
秒杀所有付费软件!用Excel汇总100个格式错乱的PDF表格,老板都看呆了
文章图片
4.提升标题
现在我们虽然获取了pdf中的表格 , 但是它的标题是默认的 , 想要达到自动匹配表头的效果 , 我们就必须要将表格中的标题放在PQ中标题的位置 , 这个时候我们就需要用到Table.PromoteHeaders这个函数 , 也是添加一个自定义列 , 然后将公式设置为:Table.PromoteHeaders([Data])然后将data这一列数据删除掉 , 我们点击table可以看下表格中的标题已经放在标题行了