电子表格 – 使用不同的分数(来自其他两个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
)
适用于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
input该公式并将其向下拖动
如果公式会给你一个错误,试着改变;
(取决于您的本地设置)。
对于score2
公式, ps将是相同的,只是从score1
到score2
(即$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
。 或者,在这种情况下,使用INDEX
和MATCH
的等效解决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