烧脑(1)文本格式时间转换)、2)数据模糊匹配查询、3)金额小写转大写、4)获取单元格内的数值、5)单元格内数值求和

如果看不懂呢?

那也没关系。这五个函数公式不但烧脑,还有些实用价值。

对绝大部分人来说,复杂的函数公式,就像成型的VBA模块代码,并不是用于理解学习的;只要记得有这么个函数套路,需要时复制粘贴应用就行了。

每天早上吃个鸡蛋就挺好,又何必去琢磨如何开养鸡场呢?

1)文本格式时间转换

烧脑指数☆

如下图所示,需要将A列的文本转换为分钟。

B2单元格输入数组公式如下▼

=SUM(--("0 "&TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"分钟","/1440"),"小时","/24"&REPT(" ",99)),"天","/1"&REPT(" ",99)),{0,1,2}*99+1,99))))*1440

有朋友想你这是转换为分钟,如何转换为小时呢?耸肩,摊手,60分钟等于1小时……

2)数据模糊匹配查询

烧脑指数☆☆

如下图所示,需要根据D:E列的数据,计算A里人名的性别。需要注意的是,D列的人名和A列的人名并非完全对应,例如看见星光和看星光;不过简称的每一个字符都出现在全称中。

B2单元格输入公式如下▼

=INDEX(E:E,MATCH(,MMULT(-ISERR(FIND(MID(D$1:D$5,COLUMN(A:X),1),A2)),ROW($1:$24)),))&""

3)金额小写转大写

烧脑指数☆☆☆

Excel自带的小写转换大写的单元格数字格式,无法处理角和分的问题,但有一个函数公式可以做到。

B2单元格输入公式如下▼

=SUBSTITUTE(SUBSTITUTE(IF(-RMB(A2,2),TEXT(A2,";负")&TEXT(INT(ABS(A2)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(A2,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(A2^2<1,,"零")),"零分","整")

PS:年轻人不讲武德,WPS有自带金额大写功能。

4)获取单元格内的数值
烧脑指数☆☆☆☆
如下图所示,需要将A列数据中的数值提取到B列,数值的分布很零散,基本无规律可循。
B2单元格输入公式如下▼
=MID(SUM(MID("01"&A2,1+LARGE(ISNUMBER(-MID(1&A2,ROW($1:$48),1))*ROW($1:$48),ROW($1:$18)),1)*10^ROW($2:$19))%,2,100)
该公式只能处理15位数值,如果你的Excel版本是2019/365,建议改用以下公式:
=CONCAT(TEXT(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"0;0;0;"))
5)单元格内数值求和
烧脑指数☆☆☆☆☆
如下图所示,需要将A列混合文本中的数值部分在B列汇总求和。
B2单元格输入公式如下▼
=SUM(TEXT(LEFT(TEXT(MID(A2&"a",COLUMN($2:$2),ROW($1:$15)),),ROW($1:$15)-1),"0;-0;0;!0")*ISERR(-MID(A2,COLUMN($2:$2)-1,2)))
或:
=SUM(IFERROR(FILTERXML("<a><b>"&CONCAT(IF(ISERR(-MID(A2,ROW($1:$99),1)),"</b><b>",MID(A2,ROW($1:$99),1)))&"</b></a>","a/b"),0))
(0)

相关推荐