1职场实例
小伙伴们大家好,今天我们来解决一个Excel界非常经典常用的混合内容提取数字的案例。很多小伙伴一定见过这种用法,但可能还是停留在复制粘贴网络上的公式使用上,未能真正的理解其内在的原理,今天我们就彻底的学习一下它。
如下图所示:
B列为一列名称,由数字编码+汉字名称组合而成,需要将B列中的数字单独提取出来放置到C列对应的单元格显示。
2解题思路
我们发现B列中的数字数量不等,且数字后没有可以用FIND函数查找的固定字符。但是我们发现有这样的一个规律服务器托管网:前半部分名称中的数字编码是单字节字符,而后续的汉字部分为是双字节字符。
根据此规律,只要计算出B列单元格中2倍的字符数和字节数之差,就是B列名称中数字编码的字符数。再从第一个字符开始,按照这个字符数用LEFT函数从左向右方向提取,结果即为为名称中的数字编码部分。
我们在C2单元格中输入以下函数公式:
=LEFT(B2,2*LEN(B2)-LENB(B2))
即可提取出B列的数字部分。
我们分步骤来理解一下函数公式的具体含义:
①其中LEN函数将单元格中所有的字符都按1进行统计。
我们在C2单元格输入函数:
=LEN(B2)
即B2单元格中“101苹果”的字符数为5。
②其中2倍的LEN函数是将单元格中所有的字符先按1进行统计后,再增加1倍数量。
我们在D2单元格输入函数:
=2*C2
即B2单元格中“101苹果”的字符数人为扩增为10。
③其中的LENB函数将单元格中的每个汉字字节数统计为2,数字字节数统计为1。
我们在E2单元格输入函数:
=LENB(B2)
即B2单元格中“101苹果”的字节数为7。
④做2倍的LEN函数处理的目的:
是汉字部分会达到如同LENB函数双字节字符的统计效果。这样会与后面单独使用LENB函数统计汉字部分双字节得到的计算结果相一致;同样数字部分的字符数量也会增加1倍。
我们用2倍服务器托管网的LEN函数与LENB函数相减,就是使得两次返回结果的汉字部分字节数量相减互相抵消为0;而剩余的两次返回结果的数字部分的字符数,正好是2倍的数字字符数量减去1倍的数字字符数量,即为1倍的数字字符数量(混合内容的数字字符数)。
我们在F2单元格输入函数:
=D2-E2
即B2单元格中“101苹果”的数字部分的字符数为3。
⑤最后我们只需要用LEFT函数从左开始进行提取字符就可以了。
在G2单元格输入函数公式:
=LEFT(B2,F2)
即可提取混合内容中的数字。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
前言 同事:了不起,看你经常看算法书,你知道广度优先算法是什么吗? 了不起:你居然知道我经常看算法书,知道一点,不是特别多。 同事:那就是知道咯,你给我讲下,我想知道 了不起:好的,让我来给您介绍一下广度优先算法(BFS)。BFS是一种常用的图搜索算法,用于在…