首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

依次提取 Excel 表中金额的每一位,填入会计凭证表,套路公式收

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!

点击上方蓝字 --> 点击“...”--> 选择“设为星标

今天要教一个套路公式,将金额中的每一位提取出来,填写到对应的会计凭证表中。弄懂原理,以后只要复制这个公式,稍微修改参数就能一直为你所用。

案例:

将下图 1 中的 F 列奖金的每一位数值依次提取出来,放置到右侧的数据表中,第一位数值的前面填上人民币符号,以免被人随意添加数字。

效果如下图 2 所示。

解决方案:

1. 在 H2 单元格中输入以下公式:

=IF($F2,LEFT(RIGHT(" ¥"&$F2,COLUMNS(H:$M))),"")

2. 向右向下拖动,复制公式。

公式释义:

为了能帮助大家更好地理解,我会用从内到外依次计算出结果的方式来层层讲解。

先来解析 right 函数这段公式。

1. 选中 " ¥"&$F2 --> 按 F9:

结果为“ ¥7153”;

这段的目的是将人民币符号“ ¥”和 F2 单元格的值连接起来;

* 请注意:“¥”符号前面必须有个空格,原因稍后解释;F2 要列绝对而行相对引用。

2. 选中 COLUMNS(H:$M) --> 按 F9:

columns 函数的作用是计算参数中区域的列数,结果为 6;

之所以选结果表所在的区域,是为了方便,选 A:$F 也是一样,但是要费脑子,没必要;

参数 H:$M 的第一个单元格要相对引用,而第二个参数必须固定,这样就会在公式向右拖动的时候列数依次递减,结果为 6、5、4、3……

3. 选中整段 RIGHT(" ¥"&$F2,COLUMNS(H:$M)) 公式 --> 按 F9:

right 函数的作用是提取出文本字符串中最后一个或多个字符;语法为 right(要提取字符的文本字符串,[需要提取的字符数]);

从前面两段公式解析,我们已经知道,第一个参数结果为“ ¥7153”;第二个参数是 6,且向右拖动会依次递减;

那么整个公式表示从“ ¥7153”依次提取最后 6 位、最后 5 位、最后 4 位……最后 1 位;

4. 最后用 left 函数提取出上述结果的第一位数;

left 函数的第二个参数省略,表示仅提取第 1 个字符;

此时大家就明白为什么“¥”前面要有空格了,就是在位数不足的时候,填充空格,否则的话,H2 单元格也会出现“¥”符号

5. 最外面的 if 函数的作用是,当“奖金”列为空值时,显示空;否则的话,当“奖金”出现空值时,结果区域的最后一位会提取出“¥”符号。

理解了套路公式的含义,我们就能在此基础上根据需求调整公式。比如,如果金额不是整数,有小数点,如何提取每一位呢?

1. 在 H2 单元格中输入以下公式 --> 向右向下拖动,复制公式:

=IF($F2,LEFT(RIGHT(" ¥"&$F2*100,COLUMNS(H:$O))),"")

公式释义:

与之前公式的区别主要是在 F2 的值后面 *100,这样做的目的是将小数点向右移两位,在提取金额的时候,就不会把小数点也作为一位提取出来了。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OC6YULw0AGkM2lwxRBc-V12Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券