对VLOOKUP进行排序会导致多列

时间:2018-03-28 13:12:52

标签: excel sorting excel-formula vlookup

下午好。我想知道这里是否有人可以帮助我解决我无法修复的问题,无法找到在线解决方案。

我有一个电子表格,其中包含两个工作表(主要和数据)和许多VLOOKUP引用,所有这些都基于下拉列表中的选择(单元格D5)。

我感兴趣的部分是关于如何对一些结果数据进行排序。我已经将主要工作表的一部分设置为看起来像一个表,其中包含两列单元格(C8:C20和D8:D20)。单元格C8:C20包含文本(键入,而不是查找文本),单元格D8:D20包含数字,这些数字是数据工作表中的查找编号。我想要C8:C20和D8:D20根据D8:D20中VLOOKUP返回的numerica值进行排序,每当D5中的查找变量发生变化时,这个值当然会改变。

例如:D5显示委员会A. C8:C20中的单元格可以包括坐席议员的隶属关系,D8:D20是隶属于每一方的议员数量。我希望C8:C20到D8:D20能够组织大多数到最少数量的议员:

z = VAR(x, p = 1, type = "const")
y = SVAR(z,Amat = amat,Bmat = NULL) 
predict(y)

等等。当D5改为理事会B时,当然D8:D20中的数字会改变,所以我希望结果显示为:

PartyA - 10
PartyB - 8
PartyC - 3
PartyD - 0
PartyE - 0

有什么想法吗?如果我不清楚我的难题,请道歉!

2 个答案:

答案 0 :(得分:0)

要直接排序配置宏所需的C8:D8范围,可能是由D5下拉列表中的更改触发的。

更易于维护的替代方案是创建可视化区域,自动生成排序表。 您可以使用F中的此公式创建辅助列(在此示例中为F8): =COUNTIF($D$8:$D$20;"<="&D8),一直延续到数据结束。 这将返回每行的索引。

基于此,您可以使用

G8 =INDEX(C$8:C$20;MATCH(ROW()-7;$F$8:$F$20;0))

H8 =INDEX(D$8:D$20;MATCH(ROW()-7;$F$8:$F$20;0))

使用相同的公式填充剩余的行。

我在这里使用INDEX/MATCH代替VLOOKUP(你也应该这样做!)。

ROW()-7返回表格中所需的行。

答案 1 :(得分:0)

您可以创建数据透视表并根据B列设置排序。然后在更改时刷新或在打开表时自动刷新 右键单击数据透视表中的任何单元格 单击“数据透视表选项” 选中“打开文件时刷新数据”

希望有所帮助!