大数跨境
0
0

解决问题的核心是逻辑思路,至于函数本身并不是重点(以实际案例剖析)

解决问题的核心是逻辑思路,至于函数本身并不是重点(以实际案例剖析) Excel数据分析之道
2024-01-27
1

我经常说,学习应用Excel的核心是逻辑思维,而不是函数语法。也许你会套用别人给出的公式,但是表格数据变化多端,一个公式不可能一套再套,而我们学习和应用Excel的根本,是培养自己解决问题的能力。

下图是这样一个示例,要求从A列的名称规格中,提取出名称和规格两列。

在这个例子中,名称是前面几个汉字,而规格则是名称后面第一个数字开始的所有字符(包括数字和文本)。
根据这个规律,我们可以设计如下的提取名称的数组公式,如下图5所示。
=LEFT(A2,MATCH(TRUE,ISNUMBER(1*MID(A2,ROW($1:$20),1)),0)-1)

这个公式的基本逻辑思路是:先用MID函数将名称规格进行拆分,每次取一个字符,构建一个数组,然后再将每个字符乘以1,使用ISNUMBER函数判断是否为数字,然后使用MATCH函数将第一个出现数字的位置定位出来,最后使用LEFT函数取出名称。

公式的详细计算逻辑及过程解释如下(以单元格A2的数据为例)。

(1)表达式 MID(A2,ROW($1:$100),1) 是依次取出名称规格的每个字符,这里假设名称规格字符串最大位数是20:

{"葡";"萄";"糖";"5";"%";"*";"1";"2";"瓶";"";"";"";"";"";"";"";"";"";"";""}

(2)表达式 1*MID(A2,ROW($1:$100),1) 就是将上述数组的每个元素乘以1,如果数组元素是文本型数字,结果就是一个数字,如果是文本,结果就是错误值:

{#VALUE!;#VALUE!;#VALUE!;5;#VALUE!;#VALUE!;1;2;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

(3)表达式 ISNUMBER(1*MID(A2,ROW($1:$20),1))的是使用ISNUMBER对上述数组的元素进行判断,是否为数字:

{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

(4)表达式 MATCH(TRUE,ISNUMBER(1*MID(A2,ROW($1:$20),1)),0) 则是使用MATCH函数从上述数组中,定位出第一个TRUE的位置,结果是4,也就是说,第4个字符是数字,换句话说,前3个字符(4减去1)就是名称。

5)最后,使用LEFT函数提取出前3个字符,就得到名称。

规格的提取公式就很简单了,如下所示:

=MID(A2,LEN(B2)+1,100)

-------------------------------

数据分析及可视化系列图书,已经陆续上市,京东,当当,淘宝等各大网站均有销售,请搜索“韩小良”查询购买。



【声明】内容源于网络
0
0
Excel数据分析之道
全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
内容 1106
粉丝 0
Excel数据分析之道 全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
总阅读54
粉丝0
内容1.1k