Excel-在单个公式中查找对应的值

时间:2018-07-05 06:11:54

标签: excel excel-formula

我不确定该如何措辞,因此标题含糊。。抱歉。

这是我的情况。

数据

表1

颜色A =主队

B队=客队

Col C = Home Score

Col D =客场得分

我想做的是在一个公式中平均获得球队最后3分的成绩。

问题是球队可能出现在主场或不在场的列中。 如果团队是A列,则需要C列中的值。如果团队是B列,则需要C列中的值。

任何想法都值得赞赏。我很困惑。

谢谢

4 个答案:

答案 0 :(得分:3)

仅出于兴趣,下面是一个简单公式的尝试

=AVERAGE(INDEX(C1:D7,N(IF({1},LARGE(IF(A2:B7=F2,ROW(A2:B7)*3+COLUMN(A2:B7)),{1,2,3})/3)),
N(IF({1},MOD(LARGE(IF(A2:B7=F2,ROW(A2:B7)*3+COLUMN(A2:B7)),{1,2,3}),3)))))

必须使用 Ctrl Shift Enter 作为数组公式输入,并假定数据从A列开始

enter image description here

修改

不必只对行进行除法,因此可以简化为

=AVERAGE(INDEX(C1:D7,N(IF({1},LARGE(IF(A2:B7=F2,ROW(A2:B7)),{1,2,3}))),
N(IF({1},MOD(LARGE(IF(A2:B7=F2,ROW(A2:B7)*3+COLUMN(A2:B7)),{1,2,3}),3)))))

答案 1 :(得分:2)

这将是一个很丑陋的公式,但是它可以帮助您获得想要的东西,这是团队最后三场得分的平均值:

  • 在此示例中,我将搜索值(Team2)放在了F9(用于公式中)
  • 创建一个帮助器列,并将此公式放入其中并将其向下拖动(我们在以后的INDEX公式中需要匹配的行号):

    =IF(OR(A2=$F$9,B2=$F$9),ROW(A2),"")
    

enter image description here

  • 现在我们需要创建一个平均3个最大数字的公式

    =AVERAGE(INDEX(A1:D7,LARGE(E:E,1),MATCH($F$9,INDIRECT("A"&LARGE(E:E,1)&":B"&LARGE(E:E,1)),0)+2),INDEX(A1:D7,LARGE(E:E,2),MATCH($F$9,INDIRECT("A"&LARGE(E:E,2)&":B"&LARGE(E:E,2)),0)+2),INDEX(A1:D7,LARGE(E:E,3),MATCH($F$9,INDIRECT("A"&LARGE(E:E,3)&":B"&LARGE(E:E,3)),0)+2))
    

在这种情况下,公式将返回4.33333

也许有更好的方法,但是这种方法可行:)

答案 2 :(得分:1)

您可以使用COUNTIFSSUMIFS进行逻辑平均计算。

下面H4中的公式是:

=(SUMIFS(C:C,A:A,G4)+SUMIFS(D:D,B:B,G4))/(COUNTIFS(B:B,G4)+COUNTIFS(A:A,G4))

homeawayteam

答案 3 :(得分:0)

AVERAGEIFS与INDEX / AGGREGATE的另一种用法。

=AVERAGEIFS(INDEX(E:E, AGGREGATE(14, 7, ROW($2:$999)/((C$2:C$999=I5)+(D$2:D$999=I5)), 3)):F$999, INDEX(C:C, AGGREGATE(14, 7, ROW($2:$999)/((C$2:C$999=I5)+(D$2:D$999=I5)), 3)):D$999, I5)

enter image description here