今天的方法,用2个字母概括就是:NB
汇总100个表头顺序不同的PDF表格。职场中遇到这样的问题会让很多人感到头皮发麻,即使是 “职场老鸟”也不例外。付费软件用了很多也没法快速汇总。头都要被挠秃了!
其实我们不必舍近求远,利用Excel中的power query这个功能只需要几分钟就能轻松解决这样的。操作也并不难,只需利用2个M函数就能轻松搞定,下面就让我们来一起操作下吧!
一、所需M函数
1. Pdf.Tables:获取Pdf中的表格数据
语法:=Pdf.Tables(pdf as binary) as table
这个M函数的可选参数非常多,我们可以不做设置,它的必须参数是:pdf as binary意思就说:pdf文件必须要转换为binary(二进制文件)才能放在第一参数中。as table是说函数返回的类型是表格
2. Table.PromoteHeaders:将第一行用作标题
语法:= Table.PromoteHeaders(table as table) as table
table as table它的意思是说这个函数的参数必须是一个table格式的数据,as table是说函数返回的类型是表格
对于这类的函数可能大家都比较陌生感觉看不懂。今天的操作其实非常的简单,这两个函数我们都是仅仅为其添加了一个参数,下面我们就来着手汇总下PDF
二、汇总PDF
1.获取数据
2.整理数据
进入PQ后我们仅仅保留前两列数据,将其余的数据都删掉。Name这一列是pdf文件的名称,Content这一列是每个pdf对应的二进制文件。然后将name这一列放在最前面,紧接着我们【转换】找到【替换值】将后缀名.pdf替换掉。最后将name更改为文件名
3.获取PDF中的表格
上一步PQ已经将pdf文件转换为了binary,我们就可以使用Pdf.Tables来获取pdf文件中的表格了。需要点击【添加列】找到【自定义列】就会跳出添加自定义列的界面,随后我们在自定义公式这个输入:Pdf.Tables([Content])然后点击确定,这样的话就会多出一列自定义列,并且数据都是table
随后我们点击自定义右上角的左右箭头来展开数据,在这里我们仅仅选择kind和date这两类数据,再把使用原始列明作为前缀的对勾去掉点击确定即可
这样的话在一个pdf文件就会对应2个kind分别是page和table,这两个类型中的数据是一模一样的我们只需要任选一个作为数据即可,在这里我们选择table为数据,可以在kind字段中筛选table然后点击确定即可
随后我们就可以将kind和content这两个字段都删掉了,在这里data字段中的table对应的就是每个pdf文件中的表格,我们可以点击看一下
4.提升标题
现在我们虽然获取了pdf中的表格,但是它的标题是默认的,想要达到自动匹配表头的效果,我们就必须要将表格中的标题放在PQ中标题的位置
这个时候我们就需要用到Table.PromoteHeaders这个函数,也是添加一个自定义列,然后将公式设置为:Table.PromoteHeaders([Data])然后将data这一列数据删除掉,我们点击table可以看下表格中的标题已经放在标题行了
5.展开数据
随后我们还是点击下自定义右上角的左右箭头来展开数据,选择全部字段不要勾选使用原始列名,然后点击确定,这样的话就汇总完毕了,最后只需要点击【主页】找到【关闭并上载】将数加载回excel即可
使用这个方法当我们向文件夹中放置新的pdf表格文件,只需要回到汇总的Excel表格中,点击鼠标右键选择刷新,新放置的pdf文件就能自动刷新进来,非常的方便。
注意事项:
1.这个方法仅仅适用于从系统导出,或者文件另存的PDF文件,如果是打印机扫描的就不可以了,因为识别不到数据信息
2.所有转换PDF的方法,都不能保证100%正确,这个方法也不例外,但用了几个都没有,大家汇总后还是需要检查下数据的
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!