分享

一道趣味题,99%的人看不懂

 Excel教程平台 2021-11-12

大家好啊,我是已经头晕目眩的六姑娘。

今天给大家分享一道趣味题。(烧脑的不行)

盲猜一下,大概率99%的人会看的晕头转向。(绝对不是标题党!!!)

期待大家看完以后可以啪啪打我的脸。

大声告诉我:你个菜鸡,老子看懂了!!!

 请看题目: 

把A列到G列里面的数据自动取尾数,然后去掉重复的尾数,按从小到大升序排列,最后合并到H列对应的单元格里。

题目读起来很简单,但这道题内涵却非常丰富,并且应用到多个函数及嵌套,是一道非常有意思的烧脑题目!

扫码入群,下载Excel练习文件,同步操作

在单元格H2中输入公式=MID(SUM(IFERROR(SMALL(IF(MMULT(1-ISERROR(FIND(ROW($1:$14)-1,RIGHT(A2:G2))),ROW($1:$7)^0),ROW($1:$10)-1),ROW($1:$10))/10^ROW($1:$10),"")),3,10),三键回车并向下拖拽。

  思路解析 : 

1.   既然要取尾数,位数包含0-9共10个数字,那么第一个想到的就是将这组数据的位数用RIGHT函数提取出来后,用FIND函数在源数据中查找0-9这10个数字。查不到则意味着该数字不包含在源数据中。因此,我们可以把公式写成“=FIND(ROW($1:$10)-1,RIGHT(A2:G2))”。这里ROW($1:$10)-1代表着0-9这10个数字。

2.接下来用ISERROR函数来做一个判断,“=ISERROR(FIND(ROW($1:$10)-1,RIGHT(A2:G2)))”将错误值都转换为TRUE,数字都转换为FALSE。这一步为后面的计算做好了准备。

3.  “=1-ISERROR(FIND(ROW($1:$10)-1,RIGHT(A2:G2)))”部分,用1减去步骤2,是将错误值都转换为0,数字都转换为1。因为只有真正查找到的数字才会对后面的计算有实际意义。

4.下面该要MMULT函数出场了。“=MMULT(1-ISERROR(FIND(ROW($1:$10)-1,RIGHT(A2:G2))),ROW($1:$7)^0)”部分,如下图。它的结果表达的含义是有几个0、几个1、…、几个9在源数据中被查询到(图中黄色部分)。

5. 接下来利用IF函数对上述结果做一个判断。“=IF(MMULT(1-ISERROR(FIND(ROW($1:$14)-1,RIGHT(A2:G2))),ROW($1:$7)^0),ROW($1:$10)-1)”部分,如果为真(大于0的任何数字时),返回对应的0-9中的数字;为假时,返回错误值,其结果为{0;FALSE;2;FALSE;FALSE;5;6;7;8;9;FALSE;FALSE;FALSE;FALSE}。

6. “=SMALL(IF(MMULT(1-ISERROR(FIND(ROW($1:$14)-1,RIGHT(A2:G2))),ROW($1:$7)^0),ROW($1:$10)-1),ROW($1:$10))”部分,利用SMALL函数依次取出上述部分从第1到第10的数字。其结果为{0;2;5;6;7;8;9;#NUM!;#NUM!;#NUM!}。

7.   接下来这一步很关键。将上述结果分别除以10^ROW($1:$10),结果为{0;0.02;0.005;0.0006;0.00007;0.000008;0.0000009;#NUM!;#NUM!;#NUM!}。看看和步骤6中的结果有什么变化?

8.利用IFERROR函数将错误值转换为空值。得出{0;0.02;0.005;0.0006;0.00007;0.000008;0.0000009;"";"";""}。

9.   利用SUM函数求和,结果是0.0256789。

10. 利用MID函数从第3位开始提取字符串,就是我们想要的结果。

以上。

小伙伴们,你们还在吗?

看懂了吗?

咳咳,大家从中学到数据处理的思路与技巧了吗?


编辑:六姑娘

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多