我想根据列中另一列的值对列中的一组单元格进行排序。
K L M N
1 Italy 10000 China 80000
2 Spain 2000 Russia 1000
3 UK 300 India 300
4 France 40 Pakistan 50
我的想法是只对值范围进行排序,例如从K1
到K4
,具体取决于L1
到L4
和M1
到{{1}所以,如果我现在更改西班牙和/或俄罗斯的值,我会有
N4
此外,列 K L M N
1 Spain 40000 Russia 100000
2 Italy 10000 China 80000
3 UK 300 India 300
4 France 40 Pakistan 50
和L1:L4
的值取决于其他单元格和公式。我尝试了以下脚本并且它部分有效,但是当通过其他单元格修改N1:N4
或L
的值时,列N
和K
未排序。
M
有什么想法吗?
答案 0 :(得分:1)
我的建议是每次数据更改时执行第3步。 如果您需要自动排序,您需要查看使用VBA或根据您的表创建另一个表(提示,您可以使用Large函数和vLookup函数)
答案 1 :(得分:1)
假设您的国家/地区位于A1:A8,您的值位于B1:B8,然后位于C1:C8输入1或2来确定该国家/地区应显示的列。
现在在L列中,获取第1列值的最大值。在L1中,输入了数组:
=LARGE(($C$1:$C$8=1)*($B$1:$B$8),ROW())
并填写L4。然后在K1中,检索与该值相关联的国家/地区:
=INDEX($A$1:$A$8,MATCH(L1,$B$1:$B$8,FALSE),1)
并填写K4。然后在N和M中做同样的事情,除了第2列值。
如果你担心重复,那么为所有值添加一个非常小的数量。为此,请更改L1公式(不要忘记输入数组)
=LARGE(($C$1:$C$8=1)*(($B$1:$B$8)+(ROW($B$1:$B$8)/10000)),ROW())
并将K1公式更改为
=INDEX($A$1:$A$8,MATCH(INT(L1),$B$1:$B$8,FALSE),1)