不达鸟 发表于 2021-10-21 17:23:00

多行多列数据,数据比较排序


目的:16列3行数据,以列为单位对16列排名,排名序号写在对应列的红框里                                 
条件 1、以列为单位,比较每列最小数,数越小排序越高,排序1-16
   2、比较时如果遇到数值相等的,比较第二大的数,数值大的排序越高;      
   3、如果第二大数也相同,比较最大的,值大的排序高;三数都相等就以数所在列号的顺序先后来(1,2列数一样,1列排序靠前)。
请问这个要怎么才能排序


张海燕 发表于 2021-10-29 12:57:40

是这意思吗?

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),)

恩河美诗 发表于 2021-10-29 16:33:38

一看就很厉害但我看不懂的公式

股神金舞伦 发表于 2021-10-31 09:28:44

还是说,这样?

文儿 发表于 2021-11-2 00:26:37

=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),)

小少女 发表于 2021-11-3 15:35:15

谢谢!三个都试了,发现了小问题,我描述清楚一下:每一列的最小值比对,小的先排序。如果有数值相同的比较对应列第二大的数,值大的优先排序,如果前两个都相同,比较对应列最大数,值大的优先排序。如果三个数都相同,按列号小的优先排序。(数据:5列和12列前两数相同,第三数5列大,5列要排序优先,12列和6列 三数一样,6列列号小优先排序)

赵普 发表于 2021-11-15 07:57:00

=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),)
这个呢

潼潼爸爸 发表于 2021-11-20 19:52:43

输入结果发现 当最小值一样时,中间数大的那个排序靠后了(还需比较第二,第三数时,要数值较大的那个排序应该优先,这个公式结果是数大的排序靠后了),刚好反了

肥肆 发表于 2021-11-27 18:44:02

这样子???

=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),)

吕大浪 发表于 2021-12-4 21:30:49

不好意思,这样的,如图
页: [1] 2 3
查看完整版本: 多行多列数据,数据比较排序