本题甚是简单,故加了公式字符长度限制.我的公式为144个字符,望后续大家再突破.(限制放得比较宽松,其实完全可以是150字符,为给答题者多一些空间而设为160字符). 现做一简单总结. 本题主要考点为FREQUENCY之运用(见附件)和如何缩减公式长度. 本题有两个同仁公式稍长,只要作一小小调整即可,非本题如此,很多时候均可以借用此思路: 1.INDEX($B2:$B20)类似用法可以改为INDEX(B:B)以缩减公式长度. 2.公式中IF过多时要做精减,通过()*()形式代替 if((),(),()). 3.COLUMN(A:A)完全可以用COLUMN(a1)替代,可以减少一个字符. 4.根据本题特点,所有$符号可以全部去掉,COLUMN(A1)改为COLUMN()-2可以再减10个字符. ...................................... 我的答案如下(前两个公式均为144个字符),分析见附件内. =INDEX(B:B,LARGE(IF(MAX(FREQUENCY(ROW(1:20),(B1:B19<>B2:B20)*ROW(1:19)))=FREQUENCY(ROW(1:20),(B1:B19<>B2:B20)*ROW(1:19)),ROW(1:20)),COLUMN()-2)) =INDEX(B:B,SMALL(IF(MAX(FREQUENCY(ROW(1:20),(B1:B19<>B2:B20)*ROW(1:19)))=FREQUENCY(ROW(1:20),(B1:B19<>B2:B20)*ROW(1:19)),ROW(1:20)),COLUMN()-2))
当然,完整的公式应该有排错处理才好(因出题时未做说明,故未严格要求),最终公式应该是以下(加上排错处理150字符): =INDEX(B:B,SMALL(IF(MAX(FREQUENCY(ROW(1:20),(B1:B19<>B2:B20)*ROW(1:19)))=FREQUENCY(ROW(1:20),(B1:B19<>B2:B20)*ROW(1:19)),ROW(1:20),99),COLUMN()-2))&""
andysky提供的答案还是有错误,当每条生产线都只有一次的情况下就会出错。-chrisfang
谢谢提示.从未考虑一次之特殊状况,现作修正:将其中ROW(1:20)改为ROW(2:20)即可,长度不变。 =INDEX(B:B,SMALL(IF(MAX(FREQUENCY(ROW(2:20),(B1:B19<>B2:B20)*ROW(1:19)))=FREQUENCY(ROW(2:20),(B1:B19<>B2:B20)*ROW(1:19)),ROW(1:20),99),COLUMN()-2))&""
[此贴子已经被作者于2006-12-28 9:12:35编辑过] |