|
8#
楼主 |
发表于 2009-10-27 08:30:00
|
只看该作者
二十二、用特殊符号补齐位数
和财务打过交道的人都知道,在账面填充时有一种约定俗成的“安全填写法”,那就是将金额中的空位补齐,或者在款项数据的前面加上“$”之类的符号。其实,在excel中也有类似的输入方法,那就是“rept”函数。它的基本格式是“=rept(“特殊符号”,填充位数)”。
比如,我们要在中a2单元格里的数字结尾处用“#”号填充至16位,就只须将公式改为“=(a2&rept(″#″,16-len(a2)))”即可;如果我们要将a3单元格中的数字从左侧用“#”号填充至16位,就要改为“=rept(″#″,16-len(a3)))&a3”;另外,如果我们想用“#”号将a4中的数值从两侧填充,则需要改为“=rept(″#″,8-len(a4)/2)&a4&rept(″#″)8-len(a4)/2)”;如果你还嫌不够专业,要在a5单元格数字的顶头加上“$”符号的话,那就改为:“=(text(a5,″$#,##0.00″(&rept(″#″,16-len(text(a5,″$#,##0.00″))))”,一定能满足你的要求。
二十三、创建文本直方图
除了重复输入之外,“rept”函数另一项衍生应用就是可以直接在工作表中创建由纯文本组成的直方图。它的原理也很简单,就是利用特殊符号的智能重复,按照指定单元格中的计算结果表现出长短不一的比较效果。
比如我们首先制作一张年度收支平衡表,然后将“e列”作为直方图中“预算内”月份的显示区,将“g列”则作为直方图中“超预算”的显示区。然后根据表中已有结果“d列”的数值,用“wingdings”字体的“n”字符表现出来。具体步骤如下:
在e3单元格中写入公式“=if(d3<0,rept(″n″,-round(d3*100,0)),″″)”,然后选中它并拖动“填充柄”,使e列中所有行都能一一对应d列中的结果;接着在g3单元格中写入公式“=if(d3>0,rept(″n″,round(d3*100,0)),″″)”,也拖动填充柄至g14。我们看到,一个没有动用excel图表功能的纯文本直方图已展现眼前,方便直观,简单明了。
二十四、计算单元格中的总字数
有时候,我们可能对某个单元格中字符的数量感兴趣,需要计算单元格中的总字数。要解决这个问题,除了利用到“substitute”函数的虚拟计算外,还要动用“trim”函数来删除空格。比如现在a1单元格中输入有“how many words?”字样,那么我们就可以用如下的表达式来帮忙:
“=if(len(a1)=0,0,len(trim(a1))-len(substitute(trim(a1),″,″,″″))+1)”
该式的含义是先用“substitute”函数创建一个新字符串,并且利用“trim”函数删除其中字符间的空格,然后计算此字符串和原字符串的数位差,从而得出“空格”的数量,最后将空格数+1,就得出单元格中字符的数量了。 |
|