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="收据"中的收据改成该字段即可