以下是引用nbc在2007-3-28 23:52:11的发言:TO willin 其实问题的关键还是解决情况一,在情况一未解决的同时只试图解决情况还是会无法得到期望值。 以willin提供的判断函数为例,如果个数小于2,则出现三种状况。 状况一:数字50的个数大于等于2个,则公式转为计算山版主的公式,最终情况一仍会出现 状况二:数字50的个数等于1个,根据willin的判断公式,会返回结果“空”,因为“1<2”。而实际上此时的期望值应该是该50出现所在的行数减去源数据首行行数。比如说50只在第44行出现,则期望值是44-3=41。这种状况实际上也是情况一的一种延伸。 状况三:数字50的个数等于0个,根据willin的判断公式,会返回结果“空”,这是符合期望值的。 至于刚才所说的将小于个数改为1,实际上并无法解决问题,因为针对刚才的状况三,即数字50出现的个数为0的情况下,小于2和小于1所返回的结果都是“空”,都是符合期望值。所不同的是,当将小于个数改为1时,而又出现状况二,即数字50只出现1次,则此时公式会转而使用山版主提供的公式进行运算,最终情况一仍会出现。 所以说将小于个数改为1或2都没法从根本上解决问题,因为情况一才是本实例的关键。 说的太复杂了,越来越不明白你的意思了,可不可以简单地用数字来说,而不要说总结性的概念. 如果用下面的公式: =IF(COUNTIF($B$3:$D$100,$G$3)<1,"无",MAX(MMULT(SMALL(IF(($B$3:$D$100=$G$3)+(ROW($B$3:$D$100)=3),ROW($3:$100)),ROW(INDIRECT("1:"&COUNTIF($B$3:$D$100,$G$3)+2))+{0,1}),{-1;1}))) 计算出来的结果是几?,你希望是几?, 这时候的情况是怎样的. 注意G4是数组公式要同时按CTRL+SHIFT+ENTER输入,而不时只按ENTER键,估计你修改2为1后只按ENTER键所以出现无效值的错误.
wvhs57H7.rar
(6.68 KB, 下载次数: 14)
[此贴子已经被作者于2007-3-29 7:17:45编辑过] |