多行多列数据,数据比较排序
目的:16列3行数据,以列为单位对16列排名,排名序号写在对应列的红框里
条件 1、以列为单位,比较每列最小数,数越小排序越高,排序1-16
2、比较时如果遇到数值相等的,比较第二大的数,数值大的排序越高;
3、如果第二大数也相同,比较最大的,值大的排序高;三数都相等就以数所在列号的顺序先后来(1,2列数一样,1列排序靠前)。
请问这个要怎么才能排序
是这意思吗?
B2=MATCH(SUM(MID(SMALL(ROUND(B3:B5,2)/1%%+B1*10^8,{1;2;3}),3,99)*10^{10;5;0})+B1,SMALL(MMULT($B1:$D1^0,MID(SMALL(ROUND($B3:$Q5,2)/1%%+$B1:$Q1*10^8,{1;2;3}+3*($B1:$Q1-1)),3,99)*10^{10;5;0})+$B1:$Q1,$B1:$Q1),) 一看就很厉害但我看不懂的公式 还是说,这样?
=MATCH(SUM(MID(SMALL(ROUND(B3:B5,2)/1%%+B1*10^8,{1;2;3}),3,99)*10^{10;5;0})+B1,SMALL(MMULT($B1:$D1^0,MID(SMALL(ROUND($B3:$Q5,2)/1%%+$B1:$Q1*10^8,{1;2;3}+3*($B1:$Q1-1)),3,99)*10^{10;5;0})+$B1:$Q1,$B1:$Q1),)
=MATCH(SUM(MID(SMALL(ROUND(B3:B5,2)/1%%+B1*10^8,{1;2;3}),3,99)*10^{10;5;0})+(17-B1)%,SMALL(MMULT($B1:$D1^0,MID(SMALL(ROUND($B3:$Q5,2)/1%%+$B1:$Q1*10^8,{1;2;3}+3*($B1:$Q1-1)),3,99)*10^{10;5;0})+(17-$B1:$Q1)%,$B1:$Q1),) 谢谢!三个都试了,发现了小问题,我描述清楚一下:每一列的最小值比对,小的先排序。如果有数值相同的比较对应列第二大的数,值大的优先排序,如果前两个都相同,比较对应列最大数,值大的优先排序。如果三个数都相同,按列号小的优先排序。(数据:5列和12列前两数相同,第三数5列大,5列要排序优先,12列和6列 三数一样,6列列号小优先排序) =MATCH(SUM(MID(SMALL(ROUND(B3:B5,2)/1%+B1*10^6,{1;2;3}),3,99)*10^{8;4;0})/1%+B1,SMALL(MMULT($B1:$D1^0,MID(SMALL(ROUND($B3:$Q5,2)/1%+$B1:$Q1*10^6,{1;2;3}+3*($B1:$Q1-1)),3,99)*10^{8;4;0})/1%+$B1:$Q1,$B1:$Q1),)
这个呢 输入结果发现 当最小值一样时,中间数大的那个排序靠后了(还需比较第二,第三数时,要数值较大的那个排序应该优先,这个公式结果是数大的排序靠后了),刚好反了 这样子???
=MATCH(SUM(MID(SMALL(ROUND(B3:B5,2)/1%+B1*10^6,{1;3;2}),3,99)*10^{8;4;0})/1%+B1,SMALL(MMULT($B1:$D1^0,MID(SMALL(ROUND($B3:$Q5,2)/1%+$B1:$Q1*10^6,{1;3;2}+3*($B1:$Q1-1)),3,99)*10^{8;4;0})/1%+$B1:$Q1,$B1:$Q1),) 不好意思,这样的,如图