谁帮我分析一下这个excel公式嵌套理解哪里有问题
我的分解如下:
Large的第一个参数是($L$27:$L$29-ROW ($J27:$J29)*0.001
第二个参数是 ROW(A1)
Match的第一个参数是(LARGE($L$27:$L$29-ROW($J$27:$J$29)*0.0001,ROW(A1))
第二个参数是 $L$27:$L$29-ROW($J$27:$J$29)*0.0001
第三个参数是 0
Index 的第一个参数是$J$27:$J$29
第二个参数是 Match的第一个参数
第三个参数是 Match的每二个参数
这个是我的理解,但是不对,谁帮我修改下
还有以下问题:
为什么要$L$27:$L$29-ROW($J$27:$J$29,用$L$27:$L$29-ROW($L$27:$L$29不行吗?意思是把后面的J换成L为什么不行 展开
第二个参数是 Match的第一个参数
第三个参数是 Match的每二个参数
Index 这里只有2个参数, 第二个参数 就是
MATCH(LARGE($L$27:$L$29-ROW($J$27:$J$29)*0.0001,ROW(A1)),$L$27:$L$29-ROW($J$27:$J$29)*0.0001,0) 的结果
J 可以换成L , 你说问题 最好 说 具体你要做什么, 说不定不需要这个公式就能搞定, 也免得你 费力去理解
费劲 看半天 ,就是为了 降序排列, 同 样的数也排而已
1、你的理解中,前面都对。关于INDEX的理解,这个公式中,INDEX只有2个参数,第一个是$J$27:$J$29,第二个参数就是MATCH整个部分。
2、ROW($J$27:$J$29)是得到这个单元格区域的行号,形成数组{27;28;29},也就是跟列标无关,所以换成L也可以,我一般是用ROW($27:$29)。
这个公式,是【多关键字排序技术】的应用,其中LARGE的第1参数减去ROW乘以一个较小的小数,起到的作用是相同数值按行号排序。例如:L27:L29分别为2、2、3,第2大是2,MATCH只能找到第一个2,就返回不了第2个2。现在分别减去一个小数,就变成2-0.027、2-0.028、3-0.029,就区分开来了。
【优化建议】
从这个公式来看,【多关键字排序技术】是为了应对MATCH才使用的。既然大家都用数组公式,我换个解法:
=INDEX(J:J,MOD(LARGE(L27:L29*10^3+ROW($27:$29),ROW(A1)),10^3))
也就是把L27:L29先放大1000倍再加上行号,变成2027、2028、3029,求出大小之后,用MOD对1000求余得到位数行号,公式更简单。
谢谢,我请教下,我把$L$27:$L$29-ROW($J$27:$J$29中的J换成别的字母就不行了,变成了#VALUE
前面解答了,ROW函数与列标无关,只与行号有关。因此,出现#VALUE!错误肯定不是这里的问题。
检查一下,这个数组公式,必须按组合键
CTRL+SHIFT+ENTER
结束。
关于【多关键字排序技术】理解,可以百度搜我gouweicao78的帖子。
不过最后J换成l是可以的,想换成什么都可以。
函数的整个意思是j27到j29这三个数经过相关处理后的从大到校排列。
所谓相关处理就是减去相应行号的万分之一(这个有点奇怪,但是只能这么理解了)。