我一直在与谷歌表格难题,所以希望有人能帮忙。
简而言之,我试图根据下图实现以下目标:
- 其中 C 列中的名称相同
- 根据 D 列中的相应值,在 F 列中返回“获胜者”、“平局”或“失败者”。
- D 中的最高单个值 =“获胜者”
- D 中两个或多个相同的最高值 =“并列”
- 任何非最高 D 值的值都等于“失败者”
我目前使用一个辅助列来使用它,该辅助列使用了 ArrayFormula、IF 和 MAX 函数的组合,在 F 列中返回文本“winner”和“loser”。
但是当我尝试在 G 列引入“平局”结果时,一切就失败了。
我尝试使用 Google Sheet 的QUERY
功能,但无济于事。
如果有人有任何想法的话,这里有一张开放的表格可以供大家玩一玩: https://docs.google.com/spreadsheets/d/1FDEja_QIGUIWcFpbZ8-FtPquBCUCkq3TLIHG2TT1OMI/edit?usp=sharing
答案1
使用辅助数据可以解决这个问题。
:警告:
- 下面显示的方法适用于 Google Sheet 和 Excel。
- 该方法认为 Kilman 的最大值为 2.8,Kelchi 的最大值为 3.9。
怎么运行的:
单元格 H2 中的公式计算 RANK:
=IF(ISBLANK(D2),"",SUMPRODUCT(--(F2=$F$2:$F$7),(--(G2<$G$2:$G$7)))+1)
单元格 I2 中的最终公式:
=IFERROR(IF(AND($F$2:$F$7=F2,H2=1),"Tied",IF(AND($F$2:$F$7=F2,H2>3),"Looser","Winner")),"")
注意:
- 对于 Kilman 来说,G2 与 G4 打平,因为他的最大值为 2.8。
- G3 是赢家,因为它低于最大值 (2.8) 并且高于最小值 (2.3)。
- 并且,对于 Kelchi 来说,WINNER 是 G6,因为它低于他的最大值 3.9。
H2>3
在单元格 I2 中的公式中,是可编辑/可调整的,因为最低 RANK 是 4。
根据需要调整公式中的单元格引用。
答案2
就像Scott Craner
说的那样,哪个版本?哪个程序?好吧,我会继续说下去……
使用类似下面的方法。该方法有效,可以适应版本和/或程序。虽然我将使用今天的 Excel,但每件事都有旧的方法,您可以调整每一部分。
使用:(不需要辅助列,只需插入需要最终答案的位置)
=LET( MaxBid, MAX(FILTER($D$2:$D$7,$C$2:$C$7=C2)), NameBid, FILTER($D$2:$D$7,$C$2:$C$7=C2),
IF(D2<>MaxBid, "Loser", IF(COUNTA(NameBid)>1, "Tied", "Winner" ) ))
(显然,调整单元格引用以适合实际范围。)
基本方法是首先对列表中的每个名称进行隔离,这样每行都有一个输出,但要使用它MAX()
来查找每个名称的最高出价,无论它是什么,并以公式使用的内部数组的形式显示。一旦您获得了每个名称的最高出价,就会测试每行的名称是赢、平还是输,与该名称具有的 MaxBid 进行比较。如果该行的出价不是 MaxBid 值,则根据定义它是输家,并且外部IF()
会输出该值。如果它确实与最高出价相匹配,内部IF()
会测试是否存在多个 MaxBid 出现。如果是,它会输出“平局”,如果没有多个出现,它会输出“获胜者”,这涵盖了所有可能的发挥方式。
如果您不能使用LET()
(您没有它,或者可能是用户没有它,只需将其使用的名称替换为其输出的公式部分。如果您没有FILTER()
,您可以轻松地替换它,因为有几种“旧”的方式可以完成它的工作。如果您没有SPILL
功能,请改用 {CSE} 数组条目。如果您只有 Google,而没有 Excel,那么替换技术可能更容易。
如果有人知道你的程序实际情况,那么就会更有动力提供完整的公式,而不是“编辑这个并粘贴那个”的模糊性。好吧。