“0”活多变的公式与格式(24/10整理完成)
excel吧
全部回复
仅看楼主
level 15
wshcw 楼主
“0”活多变的公式与格式(24/10整理完成) http://club.excelhome.net/thread-614168-1-1.html 如果你问一个学前班或者一年级的小朋友,0表示什么?他会毫不犹豫的告诉你,0表示没有,比如草地上一只羊也没有,老师就叫我们用0表示。早上爸爸给我买了两个苹果,我吃了一个,弟弟也吃了一个,现在一个也没有,就用0表示。这样的例子小朋友还可以说得很多。
小朋友说的没错,0表示“没有”可能是0最早的意思吧,也就是0的本义。古时候的人最初完全没有数量这个概念,后来由于记事和分配生活用品等方面的需要,才逐渐产生了数的概念。比如捕获了一头野兽,就用1块石子代表。捕获了3头,就放3块石子。假如什么都没有捕获,当然是0头了。这样就产生了数,各国的人们也学会了用不同的符号表示不同的数字,但人们最后学会的是怎么表示0,因为其他的数字都比较好表示,所以后来有人把铜钱摆在空位上,以免弄错,这就表示0。不过多数人认为,"0"这一数学符号的发明应归功于公元6世纪的印度人。他们最早用黑点(•)表示零,后来逐渐变成了"0"。
那E氏函数家族中的“0”也真像小朋友所说的那样表示什么也没有吗?不然,0的活用与不用蕴藏着很多意想不到的玄机。到底有怎样的玄机呢?那我就0机一动开处方,虽然不算什么0当妙药”,闲话少说,E切从0开始,一起来看看0牙利齿吧!
2012年04月20日 02点04分 1
level 15
wshcw 楼主
五、隐居山“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不断开拓创新的结果。
2012年04月20日 03点04分 3
level 15
wshcw 楼主
七、“0”的伪装(TRUE,FALSE)
例①A1单元格是785,B1单元格是358017。如何从B1中将A1的7、8、5替换掉,在C1得出301
=SUM(MID(0&B1,LARGE(ISERR(FIND(MID(B1,COLUMN(1:1),1),A1))*COLUMN(1:1),COLUMN(1:1))+1,1)*10^COLUMN(1:1))/10
公式分析:
1、FIND(MID(B1,COLUMN(1:1),1),A1)
=FIND(MID(B1,{1,2,3,4,5,6,7,……,256},1),A1)
=FIND({"3","5","8","0","1","7","",……,""},785)
={
#VALUE!,3,2,#
VALUE!,#VALUE!,1,……,1}
用MID分解字符串,得到一个数组,大家已经很熟悉了,由B1单元格数字得到一个数组:{"3","5","8","0","1","7","",……,""}。然后用FIND查找数组中每个数据在A1单元格数字中的位置,先查找"3",A1中没有3,那么结果是错误值#VALUE!,接下来找"5",在A1单元格数字的第3个位置,结果便是3,再找"8",结果是2,依次找下去,当查找空值""时,结果都是1,这可以理解为用FIND找空值,空值永远在字符串第1个位置。
2、ISERR(FIND(MID(B1,COLUMN(1:1),1),A1))
=ISERR({
#VALUE!,3,2,#
VALUE!,#VALUE!,1,……,1})
={TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,……,FALSE}
我们又遇到一个信息函数ISERR,它是检测一个数据是否为错误值(#N/A以外),如果是错误值返回TRUE,不是错误值返回FALSE,形象地理解为:错的就是对的,对的成了错的,真是“真亦假来假亦真,假亦真来真亦假”。
3、ARGE(ISERR(FIND(MID(B1,COLUMN(1:1),1),A1))*COLUMN(1:1),COLUMN(1:1))+1
这一步是算出查找不到的第1至256个最大值。运行后的效果:
{8,7,4,3,1,……,1}
代入公式:
=SUM(MID(0&B1,{8,7,4,3,1,……,1},1)*10^COLUMN(1:1))/10
进一步提取得到:
=SUM({"1","0","3","0"……"0"}*10^COLUMN(1:1))/10
再运算:
=SUM({10,0,3000,0,……,0})/10
=301
例②A2:A7单元格输入:
ABT欢*迎光*临我的百*度空*间★
我的函数主*题
1235云南
【】☆‰℃丂丮云南大理镕DAW12
123OP4ABYTQRTONٷ
【】龥县丮云南大理丂☆‰℃%
问题:要求取出单元格内的汉字字符串:
=MID(A2,MATCH(TRUE,MID(A2&"咗",ROW($1:$50),1)>="吖",),SUM(N(MID(A2,ROW($1:$50),1)>="吖")))
变通为:
=MID(A2,MATCH(1>0,MID(A2&"咗",ROW($1:$50),1)>="吖",),SUM(N(MID(A2,ROW($1:$50),1)>="吖")))
例③分数评级
假定考分>=85的为”A”,>=70的为”B”, >=60的为”C” 其余的为”D”
则公式为(当然有好多公式可写,但这是本文需要这样写):
=CHAR((A1<=100)+(A1<85)+(A1<70)+(A1<60)+64)
解析: 假定A1中输入成绩80,则公式在运算中演变成:
=CHAR(TRUE+TRUE+FALSE+FALSE+64),式中TRUE参与计算则为1,FALSE参与运算则0,由于我们知道大写字母从”A”开始,它的字符集数字代码是从65开始的。因此当满足一个条件时是1,再加64刚好就是65,然后用CHAR函数返回字母。

2012年04月20日 03点04分 4
level 15
wshcw 楼主
早上为能贴上,改动了原稿,现删除了后贴的两部分,只好重新贴上来,内容只有第八部分改动了几个字,其余部分与原稿一致。
2012年04月20日 07点04分 10
level 13
成武兄告诉我们,EXCEL吧是个人杰地灵的地方:
做为万物之灵的你
本着你的一点灵犀
运用你的心灵手巧
发挥你的聪明伶俐
坚持你的心诚则灵
实现你的凌云之志
2012年04月20日 09点04分 11
level 11
[顶][顶][顶][顶][顶][顶]

2012年04月24日 03点04分 13
level 4
表示很长~~下次再看~~
2012年04月28日 08点04分 14
level 5

2012年04月29日 15点04分 15
level 3

2012年04月29日 18点04分 16
level 6
高明!佩服啊。
2012年04月30日 16点04分 17
level 8
向高手学习
2012年05月12日 06点05分 18
level 6
好难- -阵亡……[88]
2012年06月15日 15点06分 19
level 2
这么好的贴,不顶对不起党啊![Yeah]果断顶起!
2012年06月25日 08点06分 20
level 4

2012年07月22日 12点07分 21
level 6
感谢楼主!辛苦了!
2012年08月09日 21点08分 22
level 7
绝对要顶一下
2012年11月02日 13点11分 24
level 1
没看懂。。。。
2013年04月17日 00点04分 25
level 11
受教了
2013年04月17日 01点04分 26
level 8
赞一个
2015年01月19日 23点01分 27
level 12
0比1厉害
2015年01月19日 23点01分 28
1 2 尾页