电子表格 - 使用不同的分数(来自其他2个列)对列进行两次排序

时间:2014-01-30 13:35:04

标签: excel google-sheets

我正在制作电子表格 - 目前是谷歌文档,但很高兴看到与其他电子表格软件相关的答案。

我有一份食物清单(A栏 - 食物) 我有“得分”列表1(B栏 - 得分1) 我有“得分”列表2(C列 - 得分2)

我想添加两个新列,理想情况是根据得分(包括list1和list2)从A列订购食物 - 所以一个新列根据B列中的score1排序食物,其他新列基于在C栏的得分2上。

一个例子通常有帮助,所以这就是我所拥有的:

Food   Score1  Score2  
a          12      45      
b          96      67      
c         100      32      

现在,这将是“版本1”,正在获得我想要的东西:

Food  Score1  Score2  Order1  Order2
a         12      45       3       2
b         96      67       2       1
c        100      32       1       3

或者,甚至更好,“版本2” - 根据分数以正确的顺序使用新列中的食物名称:

Food   Score1  Score2  FoodScore1  FoodScore2
a         12       45         c           b
b         96       67         b           a
c        100       32         a           c

我怀疑获得“版本1”可能是可以实现的(但不知道该怎么做) 我怀疑没有某种程序编程就不可能获得“第2版”?

希望有人可以提供帮助!

干杯

3 个答案:

答案 0 :(得分:0)

我首先会添加一个排名列,其中数字1表示最高分,数字2表示第二高,等等。

在Microsoft Excel中,假设第一列是A并且所有分数都是唯一的,您可以只使用类似

的公式
=COUNT.IF(B:B, ">=" & $B1)
D1栏中的

,第二项得分列E中的

然后,如果您使用1,2,3等级填充列F,您只需执行VLOOKUP。或者,在这种情况下,使用INDEXMATCH的等效解决方案 - 因为您要在列F中查找排名并从列A返回相应的值。< / p>

答案 1 :(得分:0)

  

或者,甚至更好,“版本2” - 根据分数以正确的顺序使用新列中的食物名称:

A2:A10 - 是您的食物范围,B2:B10 - 得分1范围,D2:D10 - 目的地范围(示例中为FoodScore1

适用于 EXCEL GOOGLE-SPREADSHEETS:

=INDEX($A$2:$A$10,MATCH(LARGE($B$2:$B$10,1+ROW(A2)-ROW($A$2)),$B$2:$B$10,0))

D2中输入此公式并将其拖放


如果公式会出错,请尝试将,更改为;(取决于您的本地设置)。

score2公式的

Ps 会相同,只需将范围从score1更改为score2(即$B$2:$B$10到{{1} })

答案 2 :(得分:0)

当您在Google电子表格中工作时,可能会在提供的解决方案中看到一些Googliness。使用这非常简单,只能在Google电子表格公式中使用。

// FoodScore1
=QUERY(B2:D4, "SELECT B ORDER BY C DESC")

// FoodScore2
=QUERY(B2:D4, "SELECT B ORDER BY D DESC")

截图

enter image description here

解释

QUERY函数的数据范围只是B2:D4。然后,准SELECT语句仅选择列B并按列C或D排序。

参考

https://developers.google.com/chart/interactive/docs/querylanguage