题目很简单,但要写出最简洁巧妙的公式,还是需要一定的功底的!

作者:拓荒牛 分类:默认分类 时间:2026-03-20 00:51
企业头条--企业智慧之窗 - 宣传部

小伙伴们好,今天要举办一个擂台竞赛,看看谁写出的公式最短最巧妙!

题目是这样的:

如果源数据中的文本前8位是数字,则提取数字,否则就直接引用源数据。

 

题目要求就是这么多,快来看看你怎么样写出最短的公式吧!

01

第一个公式,长度63个字符。

在单元格B2中输入公式“=IF(LEN(MAX(IFERROR(LEFT(A2,ROW($1:$20))*1,0)))=8,LEFT(A2,8),A2)”,三键回车并向下拖曳即可。

 

思路:

  • LEFT函数依次从左向右分别提取1个,2个,... 20个字符,并将它们转换成数值型数字

  • IFERROR函数将错误值转换为0

  • 提取出最大的数字。如果最大字符长度的数值为8,则提取该长度的字符,否则引用对应的单元格

02

第二个公式,长度59个字符。

在单元格B2中输入公式“=IF(ISERR(SUM(--MID($A2,ROW($A$1:$A$8),1))),$A2,LEFT($A2,8))”,三键回车并向下拖曳即可。

 

思路:

  • 利用MID函数提取第一个至第八个字符,并转换为数字

  • SUM函数求和。如果有提取出来的字符有文本字符,则SUM函数的结果返回错误值

  • ISERR函数判断是否为错误值

  • IF函数进行逻辑判断,并进行不同的操作

03

第三个公式,长度42个字符。这一步,由于是一次性提取长度为8的字符,因此源数据中“20230101元旦快乐”可以更改为“2023/1/1元旦快乐”。

在单元格B2中输入公式“=IF(IFERROR(-LEFT(A2,8)<0,0),LEFT(A2,8),A2)”,并向下拖曳即可。

 

思路:

  • LEFT函数提取长度为8的字符,并转换为负数,并与0比大小

  • IFERROR将错误值转换为0。这一步会返回TRUE或者FALSE两个结果

  • IF函数做逻辑判断,进而做不同的操作

04

最短的公式。

当前用户暂时关闭评论 或尚未登录,请先 登录注册
暂无留言
版权所有:拓荒族 晋ICP备17002471号-6