我正在制作电子表格 - 目前是谷歌文档,但很高兴看到与其他电子表格软件相关的答案。
我有一份食物清单(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版”?
希望有人可以提供帮助!
干杯
答案 0 :(得分:0)
我首先会添加一个排名列,其中数字1表示最高分,数字2表示第二高,等等。
在Microsoft Excel中,假设第一列是A
并且所有分数都是唯一的,您可以只使用类似
=COUNT.IF(B:B, ">=" & $B1)
第D1
栏中的,第二项得分列E
中的
。
然后,如果您使用1,2,3等级填充列F
,您只需执行VLOOKUP
。或者,在这种情况下,使用INDEX
和MATCH
的等效解决方案 - 因为您要在列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")
QUERY
函数的数据范围只是B2:D4
。然后,准SELECT语句仅选择列B并按列C或D排序。
https://developers.google.com/chart/interactive/docs/querylanguage