以下是引用[I]赖赖虫[/I]在2006-4-19 13:58:06的发言:[BR]又看到公式里出现二个“--”,对于这个有什么特殊功能一直不是很理解,能否明示一下?
把文本转换成数值
MID($B5,ROUNDUP(COLUMN(A:A)/10,0),1)取得的结果是一个文本,1C$4 是一个数值,不同类型的数据是不可比的,不能判断它们之间是否相等。
例如,墙壁上写一个8字,你更多关注的是这个字有多高,什么写的,什么颜色,等等,这些都是文本的属性。而当你看到帐簿上一个8字时,你想到的是数,它与7、与9可以比较,它的大小与数位有关等等,这些都是数值型数据的属性。
"12"是一个文本,12是一个数值,如果相比,"12"大于12:
在单元格里写入公式:="12"=12,结果为False,而="12">12,结果为True。
要把文本"12"当作数值与12相比,就要转换类型,
把文本型转换成数值型,有专用的转换函数 VALUE():
=value("12"),它的结果就是一个数值。
=value("12")=12,它的结果就是True了。
在函数或公式中,运算过程会自动把文本转换为数值(一个隐含过程),再与数值进行运算,负值运算(-)也是一种运算,能把文本转换成数值:
-"25"=-25
还记得负负得正吧?
-(-"25")=-(-25)=25
简写为:--"25"=25
--可以把文本转换为数值,但它不是标准的转换方式,是借用负运算的隐含功能。
=IF(--MID($B5,ROUNDUP(COLUMN(A:A)/10,0),1)=C$4,"*",IF(ROW()=5,1,N(C4)+1))
在编辑栏中,像上面一样选取Mid()部分,按F9,显示结果为一个文本。
=IF(--MID($B5,ROUNDUP(COLUMN(A:A)/10,0),1)=C$4,"*",IF(ROW()=5,1,N(C4)+1))
而这个返回的就是数值了。
除了用--进行类型转换,你还可以选择下面其中一种:
=IF(Value(MID($B5,ROUNDUP(COLUMN(A:A)/10,0),1))=C$4,"*",IF(ROW()=5,1,N(C4)+1))
=IF(0+MID($B5,ROUNDUP(COLUMN(A:A)/10,0),1)=C$4,"*",IF(ROW()=5,1,N(C4)+1))
=IF(1*MID($B5,ROUNDUP(COLUMN(A:A)/10,0),1)=C$4,"*",IF(ROW()=5,1,N(C4)+1))
相信其中道理你已经明白。 |