发布日期:2024-10-14 09:48 点击次数:197
文 前 推 荐
批量新建含指定内容的文件INDEX函数的两个神奇用法批量插入可用Vlookup查找的图片用Word批量提取数字图片
图片
编按:
如果单位还没有采用电子发票系统,就无法直接导出发票明细,需要对收到的PDF电子发票人工录入发票明细表中。本教程提供一种快速将PDF电子发票数据提取到Excel发票明细登记表中的方法。
财务人员会收到很多PDF格式的电子发票,今天为大家介绍如何使用Excel自动提取电子发票中的明细数据。比如,需要将每张PDF发票红色框选区中的数据提取出来,按下方形式排列,方便登记到发票明细表。下面笔者以Excel 2021为例介绍具体的操作。图片
提取出以上明细数后,再加上发票号码、开票日期、发票类型、销方信息等,即可登记入发票明细表中。图片
一、导入PDF电子发票数据把收到的PDF电子发票都保存在一个文件夹中备用。启动Excel后点击“数据/来自文件/从PDF文件”(旧版Excel需要选择“从文件夹”)。导入发票文件后选择“page001”,点击“转换数据”。图片
在加载界面点击“保留行的范围”,选择仅保留发票名称栏到合计栏界面的数据(具体行数可能不同发票有所不同),方便后续公式对数据的引用。图片
最后点击“关闭并上载/关闭并上载至”,在数据的放置位置选择“现有工作表的A1”。图片
二、提取明细数据返回Excel中,可以看到发票数据有三个明显的问题:图片
问题1:大多项目名称(货物或应税劳务、服务名称)是多行的一个项目名称应当记录在一个单元格中,但当前以“*”开头的项目名称记录在多个单元格中。问题2:存在多余的列各明细数据,如项目名称、规格型号、单位等各列之间不应有多余的空列。问题3:数据错位譬如当前D列是“规格型号”,但实际的规格型号数据“25208”登记在C列。下面我们进行数据提取。1.提取项目名称数据名称数据统一以“*“开头,一个名称可能是一行数据,也可能是多行数据。在B16输入公式:=TEXTSPLIT(CONCAT(IF(LEFT(B3:B13,1)="*",CHAR(10)&B3:B13,B3:B13&"")),,CHAR(10),TRUE)图片
公式说明:使用IF函数判断分行数据开头是否有“*”。如有,就在前面连接一个分行符(CHAR(10));如没有,就在其后连接一个空值(用于屏蔽多余值导致的“0”字符)。再使用CONCAT将这两个类型数据连接起来,最后用TEXTSPLIT函数以分行符CHAR(10)分行得到正确的名称数据。2.提取其他数据特点:存在多余的空列数据存在错位并非所有项目都有规格型号、单位、数量、单价数据因此,最好的方式是整行提取项目名称后各列数据,然后去掉空值,再从右往左分别取数据赋给税额、税率、金额、单价等。在C16输入公式:=IFERROR(TAKE(DROP(DROP(UNIQUE(VSTACK(IF($C$3:$Z$3<>"",COLUMN($C$3:$Z$3),""),FILTER($C$3:$Z$13,LEFT($B$3:$B$13)="*")),1,1),1)&"",,(COLUMN(A1)-7)),,-1),"")图片
接着将公式向右拖到到I16,同时定位到需要转化为数字的列(如金额列),将公式中的“take”更改为“--take”,完成格式的转换。图片
三、实际使用上方主要介绍了单张发票中明细数据的提取思路和方法。但是每张发票的行数,以及项目名称所在列数可能都不一样,因此,在实际处理的时候可能需要经常按实际修改公式。如果你不想修改公式,则需要设法查找出项目名称的开始位置和结束位置,然后在今天的公式中引用单元格的位置即可做成模板。图片
图片
教程中其他数据的提取思路是正确的,但如果要想适应所有电子发票的提取,则还需要修改公式。譬如当前公式就不适合规格型号是多行的,或者单个产品有规格型号但没有单位的发票的处理。这些不足,都需要在模板中避免。发票提取模板下载方式
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。上一篇:交互项验证机制的符号讨论
下一篇:没有了