本文作者:office教程网

Excel 分离科目代码和科目名称 实现公式

office教程网 2024-05-27 17:45:20
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要: 某些财务软件导出的科目余额表中是“1122.01.898偷懒的技术“这样的格式,需要将代码和名称分离,或者遇到不规范的数据,如人名与手机号“龙逸凡18X12345678”,需要...

某些财务软件导出的科目余额表中是“1122.01.898偷懒的技术“这样的格式,需要将代码和名称分离,或者遇到不规范的数据,如人名与手机号“龙逸凡18X12345678”,需要将数字和汉字分离为二列。

解决方案

如果科目代码长度一致,或者代码和名字中有某个固定分隔符,则可使用“分列”功能来分离科目代码和名称,如果没有,则需要使用下面的公式:

取科目代码=LEFT(A2,2*LEN(A2)-LENB(A2))

取科目名称=RIGHT(A2,LENB(A2)-LEN(A2))

这个公式不太完善,当名称中有字母或数字时,则公式结果会出错,比如B16、B17单元格,这种情况下提取科目代码需使用下面的数组公式:

=LEFT(A2,MIN(IF(MID(A2,ROW($1:$99),1)>=”a”,ROW($1:$99),99))-1)

输入完后需要同时按Ctrl Shift Enter三键输入

如果电脑上安装了Excel2013以后的版本,也可使用快速填充,具体操作详见下面的操作演示:

利用Excek函数和倒减法实现不规律统计

举个例子:下图所示的表格中A列记录了公司每天加班的人数,要求在B列中,若连续加班人数超过3人的,每段最后一格记录此段的小计天数。 问题在于,A列中出现连续加班天数超过3人的,根本无规律可言。因此在B列中进行自动统计,如何构造公式就成了难点。常用的函数COUNTIF虽然是计数能手,但在无规律的数据面前,它也傻了;而LO

  知识点解释

第一个公式中的Len函数:计算字符数。LENB函数:计算字节数,一个汉字为二个字节。所以可以用LENB-LEN计算字符串中汉字的个数。由于公式是根据汉字个数来分离数字和汉字,所以,当名称中包含字母或数字,以及数字和汉字相互夹杂时,公式提取的结果就不符合要求。

第二个公式的设计思路是逐个截取字符串中的每一个字符,判断其是否为字母或汉字,即是否为”a”之后的字符(在Excel里,如按升序排列,则字母在数字后,汉字在字母后,也就是1→9→a→z→吖(ā)→酢(zuò),这也是它们的大小顺序)。

公式使用ROW($1:$99)生成1到99的常量数组,写成99只是为了保证大于等于字符串的长度,根据实际情况也可改成50,30等。

MID(A2,ROW($1:$99),1)是依次截止A2单元格的第1个,第2个。。。第99个。截取出的字符如果是字母或汉字,则给其字符所在位置的顺序号,否则,给它的顺序号是99。再用MIN函数来提取第一个字母、汉字的位置。最后用LEFT来截取左边的数字和字符组成的代码。

同理,如果要提取科目名称,用下列公式即可(别忘了最后用三键输入):

=RIGHT(A2,LEN(A2)-MIN(IF(MID(A2,ROW($1:$99),1)>=”a”,ROW($1:$99),99)) 1)

当然,使用上述公司还得有个前提,即避免分录名称的第一个字为数字,比如“1小组”、“2车间”等等,而应采用“一小组”、“二车间”的命名方式。

EXCEL从参数表中选择特定的值的CHOOSE函数

可以使用Index_num返回数值参数列表中的数值。使用函数CHOOSE可以基于索引号返回多达29个基于indexnumber待选数值中的任一数值。例如,如果数值1到7表示一个星期的7天,当用1到7之间的数字作Index_num时,函数CHOOSE返回其中的某一天。 语法 CHOOSE(Index_num,value1

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:Excel 分离科目代码和科目名称 实现公式发布于2024-05-27 17:45:20
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: