【心"0"相通】函数总结之二

接同上

5、隐居山"0"

如单元格A2中输入字符串"☯ABC❀wshcw中国云南大理abc♦OWY♥Excelhome☀"

问题:如何提取汉字:"中国云南大理"

公式=MID(LEFT(A2,MATCH(,0/(MID(A2,COLUMN(2:2),1)>="吖"))),MATCH(,0/(MID(A2,COLUMN(2:2),1)>="吖"),),99)没有用简写的原公式:=MID(LEFT(A2,MATCH(0,0/(MID(A2,COLUMN(2:2),1)>="吖"))),MATCH(0,0/(MID(A2,COLUMN(2:2),1)>="吖"),0),99)

解析:1、公式中"0/(MID(A2,COLUMN(2:2),1)>="吖")"由于汉字最小是"吖",只要大小等于"吖",就说明它是汉字,这部分的作用是将小于"吖"的字符经判断后作为分母(分母为0),继而出错(也就排除了小于"吖"的部分,换句话说,也就是牺牲非0的字符),由于分子为0,继而赢得汉字演变为0的胜利。

2、MATCH(,0/(MID(A2,COLUMN(2:2),1)>="吖"))这部分是定位最后一个汉字的位置,值得注意的是:前一个英文","前省略了一个0,作用是定位最后一个0的位置。

3、MATCH(,0/(MID(A2,COLUMN(2:2),1)>="吖"),)这部分是定位最前一个汉字的位置,值得注意的是:最后一个反括号前")"前省略了一个0,作用是定位最前一个0的位置。MATCH(,0/(MID(A2,COLUMN(2:2),1)>="吖"))与MATCH(,0/(MID(A2,COLUMN(2:2),1)>="吖"),)看上去只有一逗(",")之差,但"差以毫厘,谬以千里"。前者:目标远大,把潜力发挥到极限,后者因被眼前的","号所诱惑,目标只定位在眼前,目光短浅。这函数也象人生一样,只有小智慧与大智慧的结合,才能使函数家族兴旺发达。

6、居高"0"上(0次方的用法)

例A2:A7输入:字符串bbbccew-58人LK民AYUBMMM主人123965ABCR(空白)lBMMM主人-1mc76yk 中国

问题:要将A2:A7的单元格数据汇总求和。

公式:=SUM(-TEXT(MID(A2:A7&"@",COLUMN(1:1),MMULT(1-ISERR(-MID(A2:A7&"a1",COLUMN(1:1),2)),ROW(1:256)^0)),"-0%;0%;0;!0"))

解析:

1、先算出每个单元格含有的数字个数,再按这个个数分别逐个提取。

2、公式中:MMULT(1-ISERR(-MID(A2:A7&"a1",COLUMN(1:1),2)),ROW(1:256)^0)就是算出每个单元格含有的数字个数,那么" ^0"为何爬得如此高呢?这是因为ROW(1:256)^0)是常量数组{1;……;1;1}的缩写。是序列数1到256的0次幂,也就是256个1的数组。这0次方的妙用是E友对EXCEL不断开拓创新的结果。


分享到:


相關文章: