电子表格 – 使用不同的分数(来自其他两个colums)对列进行两次sorting,

我正在一个电子表格 – 目前谷歌文档,但很高兴看到有关其他电子表格软件的答案。

我有一份食物清单(A栏 – 食品)我有“成绩”(B栏 – Score1)list1我有list2的“成绩”(栏C – Score2)

我想添加两个新的列,理想地根据分数排列列A和列表2中的食物 – 所以根据列B中的得分1sorting食物的一个新列和基于分数2的其他新列从C栏

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

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 cb b 96 67 ba c 100 32 ac 

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

希望有人能帮助!

干杯

或者,甚至更好,“版本2” – 在新列中使用食物名称,按照分数正确的顺序:

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

适用于EXCELGOOGLE-SPREADSHEETS:

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

D2input该公式并将其向下拖动


如果公式会给你一个错误,试着改变; (取决于您的本地设置)。

对于score2公式, ps将是相同的,只是从score1score2 (即$B$2:$B$10$C$2:$C$10

我首先添加一个排名列,最高分数为1,次高分数为2,等等。

在Microsoft Excel中,假设第一列是A ,并且所有分数都是唯一的,则可以简单地使用类似的公式

 =COUNT.IF(B:B, ">=" & $B1) 

D1栏中,同样在E栏中的第二个分数。

那么,如果你填充列F ,1,2,3,…你可以简单地做一个VLOOKUP 。 或者,在这种情况下,使用INDEXMATCH的等效解决scheme – 因为您要查找列F的排名并从列A返回相应的值。

正如您在Google电子表格中工作一样,人们会期望在所提供的解决scheme中看到一些Googiness。 使用这个非常简单,只适用于Google Spreadsheet,公式。

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

截图

在这里输入图像说明

解释

QUERY函数的数据范围仅仅是B2:D4 。 然后,准SELECT语句只selectB列,并按列C或Dsorting。

参考

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