返回重复值最高的文本字符串

返回重复值最高的文本字符串

我一直在与谷歌表格难题,所以希望有人能帮忙。

简而言之,我试图根据下图实现以下目标:

  • 其中 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,那么替换技术可能更容易。

如果有人知道你的程序实际情况,那么就会更有动力提供完整的公式,而不是“编辑这个并粘贴那个”的模糊性。好吧。

相关内容