这个收据模板值得好好学习,有需要的可收藏!

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天分享的内容和收据单有关,主要是用函数自动计算金额。从事相关工作的小伙伴可能会经常用到。下面来看下具体案例。
制作收据单,并用函数自动计算金额
下图展示的是一份收据,我把它分为三部分。第①部分是手工记录的一些信息,比如消费的一些项目以及单价和数量;第②部分是要计算各项目的金额,也是我们今天的重点,要求金额前面有货币符号¥;第③部分是各项目的合计金额及大写金额,大写金额暂不分享。

先来看各项目金额的计算方法,在G6单元格输入下面的公式,向右向下填充。

=IF($A6="","",LEFT(RIGHT(" ¥"&$E6*$F6/1%,COLUMNS(G:$O))))

$E6*$F6这部分用数量乘以单价得到金额483,由于收据的金额栏目中需要记录角和分,所以把金额乘以100,也就是$E6*$F6/1%这部分,得到了48300。这样的好处是如果金额是小数,乘以100后变为整数。

接下来只要把48300从右向左依次取出1位放在对应的收据栏里就可以了。也就是从右边第1位取1个放在分的位置,从右边第2位取1个放在角的位置,···,以此类推。
但是像这样从右往左提取的函数貌似没有,从左往右提取的倒是有个mid函数。其实可以用left+right模仿mid的效果。等会再详细说明。

" ¥"&$E6*$F6/1%这部分是在扩大100倍后的金额前连接一个空格和货币符号,这个技巧很关键,结果变为" ¥48300"。

COLUMNS(G:$O)这部分计算从G列到O列的总列数,结果是9。其中G列不固定,O列是固定的,当公式向右拉时,列数会逐渐变小,变为8,7,6,···,2,1。

注意columns和column的区别,columns返回总共的列数,结果是个数;column返回对应列的列号数组,结果是个数组。
RIGHT(" ¥"&$E6*$F6/1%,COLUMNS(G:$O))这部分用right从" ¥48300"中截取右边的9位,由于它不足9位,截取的结果还是它自己,如下图所示。公式右拉时,依次截取右边的8,7,6,···,2,1位。
LEFT(RIGHT(" ¥"&$E6*$F6/1%,COLUMNS(G:$O)))这部分用left从上一步的结果中截取出左边的第1位,结果如下图所示,刚好就是我们要的结果。

当公式下拉时,项目名称是空白的,结果会不正确,如上图红框所示,所以最后用if函数判断一下,如果项目名称是空白,那么返回空白,否则返回算出来的结果。

在C14单元格输入下面的公式,算出合计金额。

=SUMPRODUCT(E6:E13,F6:F13)

在G14单元格输入下面的公式,向右填充,得到了上图黄色区域的结果。

=LEFT(RIGHT(" ¥"&$C14/1%,COLUMNS(G:$O)))

链接:

https://pan.baidu.com/s/1sMOtLQNh6ROug6x1aoRJkQ

提取码:gmdo
(0)

相关推荐