以下是引用GUCHENGRONG在2006-8-6 16:38:51的发言:山兄我唯一没明白的就是Indirect在这里的用处,按了F9说我公式太长,无法计算的 另外我想把最后的ROW("A1:A"&len(A1))为什么不能计算? 谢谢了! 其实你已经明白,但明白得朦朦胧胧。 为什么说你明白?因为你想把公式改为:ROW("A1:A"&len(A1)) 为什么说你明白得朦朦胧胧?因为你想把公式改为:ROW("A1:A"&len(A1)) 因为Len(A1)=9, 目的是要返回Row(1:9)或者Row(A1:A9),进而得到结果{1;2;3;4;5;6;7;8;9} 但ROW("A1:A"&len(A1))不行,因为"A1:A"&len(A1)是一个文本,而Row()的参数必须是一个引用。 今天到朋友家过风俗节,喝了点酒,不知说得你是否听得明白。 这文本和引用的关系很微妙,Row(1:9)中,1:9是引用,"1:"&len(a1)="1:9"是一个文本,要把文本转化为引用才能供Row()使用,Indirect()的作用就是把文本转为引用。 “GUCHENGRONG 被评为本年度先进工作者” 你把奖状制作得再精美也不能使你得到荣誉得到奖励得到实惠,但这句话经领导在台上一念,把奖励颁发给你,你就不再是原来的你,你就有了光环。领导的作用就是把这“文本”转变为“引用”。 别小看了Indirect(),它是领导,在Indirect("1:"&Len(A1))=Indirect("1:9")的作用下,文本"1:9"由文本变成了1:9(引用)。 想看它的计算过程,请这样做: =LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&LEN(A1))))) =LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&9)))) =LOOKUP(9E+307,--MID(A1,3,{1;2;3;4;5;6;7;8;9})) 接着原文往下看。 |