今天一起读一个有点难度的公式,用函数实现数字分列填‘’支票

今天一起读一个有点难度的公式:=LEFT(RIGHT(" ¥"&ROUND($B15,2)*100,11-(COLUMN(B:B)-(COLUMN($B:$B)-1))+1))

在录入金额方面的数据时,尤其是银行账单,可能会遇到将数字填写为金额大写的情况。

像这样:

为了更直观,张小苟用Excel仿了一个银行的业务委托书。

那么我们就来学学怎么实现自动通过大写数字转换为分列显示的功能。

首先我们有一些没有规律的金额数字。

只要通过改变单元格格式就可以使它们变成汉字大写,不过遗憾的是将大写汉字转换成数字的功能Excel并没有,只能通过额外编写函数或VBA才能实现。

下面将数字分列并添加人民币符号¥的函数较为复杂,并不能简单的通过excel自带“分列”功能实现,所以,先把函数给大家看看,然后为大家分步骤讲解一下。

=LEFT(RIGHT(" ¥"&ROUND($B15,2)*100,11-(COLUMN(B:B)-(COLUMN($B:$B)-1))+1))

1、首先通过ROUND函数使所有的数字统一为两位小数的格式,并×100去除小数点占位。

注意:这里将B15的列锁定,为完成公式后的拖动做准备。

2、用“&”链接ROUND函数处理之后的数据与"¥"符号。

注意:这里要在¥前加一个“空格”,防止RIGHT返回整个字符串使LEFT取值时取到“¥”,否则会变成下面这样。

3、11-(COLUMN(B:B)-(COLUMN($B:$B)-1))+1)用来决定返回数字的位置,也就是RIGHT函数将返回的字符串长度,本条函数比较核心的地方。

思路是,用亿到分共11个单元格减掉需要输入的单元格之前的单元格数。

需要了解,COLUMN函数能够返回指定单元格的列号,如果指定一个区域则返回区域第一列的列号。

应用COLUMN我们能得到当前输入位前一列的列号,用它来减去(COLUMN($B:$B)-1)就得到了当前列与“亿”列的距离。

通过11减去这个距离,在+1,遍能得到需要返回的字符串。

3、Right函数和Left函数的使用如果有疑问建议回头看一下往期学习。

需要注意的两个知识点,Right和Left函数在参数大于字符串长度时将返回字符串本身。如果不指定返回长度,则默认值为1.

以上便是整个函数的分解学习。阅读优秀的复杂公式,大大有助于学习函数的基础知识和体会一些不常见的技巧。

TT终于可以下班了TT

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180328G1AFJM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励