我有三列:
Key1 Value1 Key2
1 50 9
4 20 4
7 35 3
9 45 1
3 15
我希望Key1
和Key2
在同一行中对齐,如果它们具有相同的值,则Value1
应根据Key1
进行更改。
Key1 Value1 Key2
9 45 9
4 20 4
3 15 3
1 50 1
7 35
我对Excel功能知之甚少,所以请建议直接公式来实现这一点(如果可行的话)。
答案 0 :(得分:1)
我想过使用Sort。您可以在Excel中设置自定义排序顺序,例如Jan,Feb,March,...但要为范围执行此操作,看起来您需要VBA。
以下公式仅适用于按键2按降序排序的情况。不确定这只是你的例子的一个怪癖。 (但我希望能够提供帮助,其他人可以参与其中。)
第1步
假设上面的Key1
在新表中的A1中。在名为Sort之前插入一列,然后在A2中添加此公式。
=IF(ISERROR(VLOOKUP($B2,$D$2:$D$6,1,FALSE)),NA(),MAX($D$2:$D$6)-$B2)
所以你有。
Sort Key1 Value1 Key2
8 1 50 9
5 4 20 4
#N/A 7 35 3
0 9 45 1
6 3 15
第2步
选择A B和C列以及不是D 。转到数据/排序并使用排序顺序作为您的密钥。
RESULT
Sort Key1 Value1 Key2
0 9 45 9
5 4 20 4
6 3 15 3
8 1 50 1
#N/A 7 35
解释
我使用ISERROR
将您Key2
以外的项目标记为不适用(NA),以免丢弃排序。然后我在Key2
中取最大数字,在本例中为9,然后减去数字的当前值。因此9排序值0气泡到顶部。