五、隐居山“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)>="吖"),)看上去只有一逗(“,”)之差,但“差以毫厘,谬以千里”。前者:目标远大,把潜力发挥到极限,后者因被眼前的”,”号所诱惑,目标只定位在眼前,目光短浅。这函数也象人生一样,只有小智慧与大智慧的结合,才能使函数家族兴旺发达。
六、居高“0”上(0次方的用法)
例A2:A7输入:
字符串
bbbccew-58人LK民
AYUBMMM主人123965
ABCR
(空白)
lBMMM主人-1
mc76yk 中国
问题:要将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不断开拓创新的结果。
(下转至56楼:http://club.excelhome.net/viewthread.php?tid=614168&page=4#pid4280698)
[ 本帖最后由 wshcw 于 2011-1-26 14:32 编辑 ] |