请教各位大神,EXCEL收据明细数据记录,如何把这些明细记录自动生成一张一张格式相同内容不同的收据。

EXCEL门店的收据明细数据记录有几千条,现在需要把这些明细通过打印机每一张打印出来,如何把这些明细数据在EXCEL表单中自动生成一张一张格式相同内容不同的收据。以便一次性可以打印几千张收据,谢谢了。

此类问题我们第一反应是这是VLOOKUP函数问题,要用到此函数解决问题就要建构辅助列。对于此题我们分三步:

1.对原数据表构建唯一代码。在原表前插入两列,如图在A2输入1  在A3输入公式=IF(C3=C2,"",LOOKUP(999^10,$A$2:A2)+1)   往下复制公式 ;在B2输入1#1  在B3输入公式=IF(C3=C2,MID(B2,1,FIND("#",B2,1))&MID(B2,FIND("#",B2,1)+1,2)+1,A3&"#"&ROW(A1)) 往下复制公式。结果如下

第二步对表单构建辅助列。在表单前插入两列,在与表单抬头“收据”行的插入列即M1单元格输入1 ,在M2输入公式=IF(O2="收据",LOOKUP(999^10,$M$1:M1)+1,"") 往下复制公式;在N2输入公式=IF(O2>0,LOOKUP(999^10,$M$1:M1)&"#"&O2,"")往下复制公式;至此我们已可以用VLOOKUP函数了

第三步用VLOOKUP导入数值,在表单最后第一空列按所需内容用VLOOKUP函数得到数值,这个简单我就不试范。再在N列前插入几列(列数等于收据单列数),然后N列 数字#数字  这样数值,然后选中删除,记住选“右边单元格左移”,到此已完操作。最后用格式刷刷一下OK.

追问

非常感谢你的技术支持,在操作中还出现了几个小问题:1、第一步按照你的公式复制后下拉在B5、B6列分别出现的是2#3和3#4(如我附图所示),在你解答中图示B5、B6正确的出现应该是 2#1,3#1就是正确的。2、收据的左上交和右上角分别需要客户的姓名和日期(如附图),如何能通过公式对应上去,谢谢。

追答

不好意思,B3单元格公式更正一下=IF(C2=C1,MID(B1,1,FIND("#",B1,1))&MID(B1,FIND("#",B1,1)+1,2)+1,A2&"#"&"1")这样再向下复制公式即可;另有关于你说的表头问题这个不重要,公式目的是定义每个表单的重复项,只要注意 1 要在你定义的那个字段同行即可,再将公式(O2="收据"中的收据改成该字段即可

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-27
你这一张一张是要按人员姓名打印?还是按单号打印?打印纸张是连续的票据打印纸还是普通的纸张?
若是普通的纸张连续打印本身就实现不了,若是票据打印纸则需要清楚是有格式印好的还是空白纸。因为需要考虑是的是通过什么方式处理你的问题追问

按照客户名称打印,每个客户名称对应的有商品名称;是连续票据打印纸也就是链式打印纸(是全新空白的链式打印纸,打印纸上没有格式,我自己已经设定好了格式);

追答

那你只好慢慢去研究一下WORD的邮件合并操作,只有用这个是现存的,否则只好用VBA代码操作,这个代码我是不玩的

本回答被网友采纳
第2个回答  2018-12-27
这个问题可以用WORD提供的“邮件合并”功能来完成,很方便的。在excel中记录相关需要打印的姓名,起止时间,然后在WORD中建立一个打印格式的空白表格,在WORD中使用“工具”菜单下的“邮件合并”命令,分别引用excle中的姓名…………信息就行了。追问

收据上还有一个客户名称和日期栏,提问的时候忘记了加上去

第3个回答  2018-12-27
我只能说你这个表设计的不好
前面的数字不好输
后面的数字不能自动计算
如果用公式倒是能实现
但是太麻烦
第4个回答  2018-12-27
一般是懒人的心比较大。

要做到小处着手大处着眼。
相似回答