你在工作中是否会遇到这样的棘手问题?因为业务需要可能经常给客户发送一些配送的货物,这时候就必须手写或者打印装箱清单附在货物包装上,如果要逐个填写,比较麻烦。改变一种方法,通过配送货物装箱的
Excel2003源数据表,结合Excel2003的数据有效性以及函数就可以比较轻松地解决这个难题!
对配送货物源数据表进行处理
启动
Excel2003 ,打开配送货物装箱信息的工作簿,如“ 配送商品装箱明细表. xls ” ,在其中的“ 配送商品装箱明细表” 工作表中的A2:H22 单元格区域内已经输入了所要装箱货物的详细内容,如商品名称、规格型号、数量、金额以及包装号等(图1 )。为了实现快速打印装箱清单,还必须作以下处理。
图1
为包装号所在的单元格区域定义名称
为了在以后的操作中能够更加方便地引用源装箱清单表中的包装号数据,可以在包装号所在的单元格区域内定义名称,执行“ 插入→ 名称→ 定义” 命令,在弹出的“ 定义名称” 对话框的“ 名称文本框” 中,输入“ 包装号” ,然后单击下面“ 引用位置” 右侧的选择按钮,选择“ 配送商品装箱明细表表” 中的H2:H22 区域,单击“ 确定” 按钮。
设计配货装箱清单
执行“ 插入→ 工作表” 命令,在此工作簿中新添加一个工作表,并为其命名,如“ 打印装箱清单” ,将装箱清单必须具备的信息,如“ 配送商品装箱明细表” 中装箱信息列名所在的A1:G1 内容复制到“ 打印装箱清单” 中的B1:H1 区域,同时输入公司名称、日期、包装号、总件数、总金额等内容,输入到清单信息的上方(图2 )。
图2
在存储日期信息的单元格中,如D3 中输入公式= TODAY() ,然后通过右键的“ 设置单元格格式” 命令,选择一种日期格式,如“ 2001 年3 月14 日” 。在总件数后面的F4 单元格中输入公式= SUM(F6:F15) (假设每只箱最多装10 件货物),总金额后面的H4 单元格中输入公式= SUM(H6:H15) ,分别用来计算所装货物的总件数和金额。
小提示:需要注意的是,为了能够在装箱清单中自动输入序号,在“ 序号” 内容所在的J6 中输入公式= IF(C6="","",ROW() - 5) ,并将其复制到下面的单元格区域中,如每只箱最多装10 件货物,将此公式复制在J6:J15 即可。
编辑配货装箱清单,实现快速打印
为了实现快速打印装箱清单,还必须在“ 打印装箱清单” 表中进行如下设置:
1) 采用下拉框方式选择包装号
在前面已经将源装箱清单表中的包装号列定义为“ 包装号” ,因此利用数据有效性工具,就可以在“ 打印装箱清单” 表中“ 包装号” 后面的C4 单元格中,采用下拉列表框方式来快速选择包装号。
单击C4 单元格,执行“ 数据→ 有效性” 菜单命令,在弹出的“ 数据有效性” 对话框中,从“ 设置” 选项卡中的“ 有效性条件” 下面的“ 允许” 列表框中选择“ 序列” 选项,在“ 来源” 编辑框中输入公式“ = 包装号” ,同时选中“ 提供下拉箭头” 复选项,最后单击“ 确定” 按钮。
2) 计算每只包装箱货物明细记录的行号
由于在每只配送货物包装箱可能放置一件或者多件货物,因此必须确定每件货物记录在源明细表中的具体位置,也就是其行号,可以采用函数实现。
在“ 打印装箱清单” 表的I1:K1 单元格区域分别输入最大行、最小行、总行数内容,在下面对应的I2 、J2 、K2 单元格中分别输入公式:={ MAX(ROW ( 配送商品装箱明细表!$ H$1:$H$22)*( 配送商品装箱明细表!
$ H$1:$H$22=$C$4))} 、=MATCH(C4, 包装号, 0) 、= COUNTIF( 包装号, C4) ,这些公式的作用是通过MAX 、ROW 、MATCH 、COUNTIF 函数以及C4 单元格中的包装号,来判断每个包装号中所含货物记录的最大行、最小行、总行数信息,其中={ MAX(ROW( 配送商品装箱明细表!$ H$1:$H$22)*( 配送商品装箱明细表!$ H$1:$H$22=$C$4))} 为数组公式,在输入完毕后,按下
“ Ctrl+Shift+Enter ” 组合键,即可自动输入{} 符号(图3 )。
图3
在已知前面信息的基础上,就可以得到每只包装箱中所有商品的起始行号了,因此在装箱清单中存储货物信息的第一行( 如第6 行) 的J 列中,即J6 单元格中,输入公式=$ I$2 - $ K$2+ROW() - 6 ,并将其复制到下面的单元格区域中,如J6:J15, 此公式的作用是通过每个包装号在源表中的最大行、总行数以及在装箱清单的行数,来确定其在装箱清单中的对应行号,如包装号S001 的起始装箱记录行号就是5 - 4+6 - 6=1 。
按照包装号,自动导入装箱信息
在存储装箱清单信息中的第一个单元格中,如C6 中输入公式= IF ($J6>=$I$2,"",OFFSET( 配送商品装箱明细表!$ A$1,$J6,COLUMN() - 2)) ,并将此公式复制到下面对应的单元格区域中,如C6:H15 中,此公式的作用是通过IF 函数判断,如果J6 中的行号大于或者等于最大行号,则显示空值,否则通过OFFSET 函数引用“ 配送商品装箱明细表” 中对应的装箱信息(图4 )。
图4 引用“ 配送商品装箱明细表” 中对应的装箱信息
这样当我们单击C4 单元格,即可弹出一个下拉列表框,从其中选择相应的包装号,如S001 ,相应的配送货物装箱信息会自动填充到其中,而且会自动计算出总件数以及金额,最后设置下打印格式,就可以打印出非常标准的装箱清单了(图5 )。
图5 打印出非常标准的装箱清单
小提示:为了使“ 打印装箱清单表” 显得更简洁,可以将计算行号的I1:K15 单元格区域的字体颜色设置为“ 白色” 或者直接将这些列予以隐藏即可。