例如下列发票,假设不通过函数计算,需有输入四次。不仅工作效率极差,出错的机率也会大大提高。
解决思路:数量和单价是变量,需要手动录入,其它三处利用函数直计算总价,再将总价转换成需要的格式。
步骤一:“金额”公式
1.选中单元格G4输入公式,然后右拉至Q4;选中G4:G4下拉填充至G9:Q9。
=LEFT(RIGHT(TEXT($E4*$F4/1%," ¥#;;"),COLUMNS(A1:$K1)))
2.公式解析:
首先将E4和F4单元格相乘。为了便于公式填充,将单元格地址设置为绝对列、相对行形式,使公式右拉下拉填充时可以适应引用单元的变化;
然后将之除了1%,即扩大100倍,作用是消除小数点。如“1.01/1%”即变为101,方便的面的公式计算;
再用TEXT函数来剔除数量与单价为0之状况。我们知道,单元格格式定义分为四段:[正数、负数、0、文本],本例中TEXT的第二参数为" ¥#;;",直接用公号分割开留下空白即表示忽略负数和0。当单价为0或者负数时公式结果返回空白;
再后用right函数提取字符。right是提取字符串右边N个字符的函数,用在此处因第二参数COLUMNS(A1:$K1)是动态的,当公式向右拉动时COLUMNS(A1:$K1)的结果将从11递减至1,那么提取的字符串也将进行递减;
最后用left函数提取最终结果。Left函数与right函数的作用相反--从字符串左边开始提取字符,其第二参数为可选。本例中为减短公式长度,省略了第二参数,即表示提取长度为默认值1。在text函数的参数中第二参数为" ¥#;;",重点在于前面的空格。此处用left函数提取字符时,若E4和F4乘积之字符长度小于当前单位的位数加1(指亿万百等等的位数)时,left只能提取到空格,若等于当前单位的位数加1时则返回人民币符号“¥”,然后才逐位返回乘积结果中的单字符,这正是需要结果。
3.本公式三个重点:A)TEXT函数的第二参数前面的空格的妙用;B)第二参数中两个“;”的妙用;C)将right与left套用使公式逐位提取数字。
步骤二:“合计”公式
1.选中单元格M10输入数组公式“=TEXT(SUM(E4:E9*F4:F9),"0.00")”,并同时按CTRL+SHIFT+ENTER三键结束,否则公式对果将出错。输入完后若公式前后系统自动加上花括号即表示输入正错,见图二所示。
2.公式解析:将E4:E9区域的值分别乘以F4:F9的值,然后再相加即得到总计,公式会自动忽略空白区。本例若不用数组公式则公式要长很多,效率更差。如:=SUM(E4*F4+E5*F5+E6*F6+E7*F7+E8*F8+E9*F9)。数组运算长处是缩短公式,提高效率,可以将常规公式中的多步运算合并得以简化。最后用text函数将数组结果格式化为精确到小数点两位。
3.选择单元格M10:Q10,单击菜单上的“跨列合并”,使单元格的结果居于区域正中。
此处用“跨列居中”而不用“合并居中”是因数组公式不能存在于多单元格合并后的单元格中。故使用区域跨列合并,显示效果和“合并及居中”一样,但因未对单元格进行合并,则与数组公式可以和平相处。
步骤三:“大写”公式
1.选择单元格C10,C10单元格可以先合并居中,然后输入公式:
=TEXT(M10,"[DBNum2][$RMB]G/通用格式")
2.公式解析:本公式通过text函数改变引用源M10单元格数字的显示方式,使之以人民币大写方示。其中[DBNum2]修改为[DBNum1]以及“G/通用格式”修改为“0”有不同的效果,读者可以自己试试。
总结:
1.Text函数是一个格式化函数,它可以改变引用源的显示方式。第一参数是引用源,第二参数即显示方式。这是一处运用很广的函数。本例中三个公式都已用到它。
2.工作表表要善用公式,简化数字的重复录入,同时也提升准确性。