Excel分析足球结果

时间:2016-08-12 17:14:48

标签: excel excel-formula

我在Excel中有以下数据(足球比赛结果):

Team A    3    2    Team B
Team A    2    1    Team C
Team B    1    0    Team D
Team C    0    1    Team B
Team D    1    2    Team A

现在我只需要提取A队的成绩,确定A队是在主场还是客场比赛(基于专栏):

Team A    3    2    Team B    Home
Team A    2    1    Team C    Home
Team D    1    2    Team A    Away

我不想使用宏。只是Excel公式。

非常感谢您的建议。

感谢。

奥米德

2 个答案:

答案 0 :(得分:0)

假设3在B1中,在E1中并向下复制以适应:

=IF(RIGHT(A1)="A","Home",IF(RIGHT(D1)="A","Away",""))  

如果这是您的系统所期望的,请将,更改为;

答案 1 :(得分:0)

将您希望列表生成的团队名称放在G1中。这将用作您的搜索和检查标准。

在G3中放置以下公式,然后右键复制到J列。

=IFERROR(INDEX(A$1:A$5,AGGREGATE(15,6,ROW($A$1:$A$5)/(($A$1:$A$5=$G$1)+($D$1:$D$5=$G$1)),ROW(A1))),"")

在K3中使用以下公式

=IF(G3="","",IF(G3=$G$1,"Home","Away"))

选择G3至K3并根据需要向下复制。

概念证明

POC

当您将G1更改为B队,C队等时,列表将更新。如果您进一步向下复制,将显示空单元格而不是错误。这是假设同一个团队永远不会发挥自己的作用。如果您的数据不是从第1行开始,请确保将行(A1)指向A1而不是数据范围的左上角。它在复制时充当了一个计数器。

由于这是在公式内执行数组操作,因此最好不要使用完整列引用,而是将列引用限制为接近您使用的行数,以避免在空行上进行计算。

使用的Excel函数列表:

更新1

根据您的评论调整公式如下,并放置在需要的位置。将其复制到右侧,这样您总共有4列。

=IFERROR(INDEX(Sheet2!E$3:E$122,AGGREGATE(15,6,ROW(Sheet2!$E$3:$E$122)/((Sheet2!$E$3:$E$122=Sheet1!$B$3)+(Sheet2!$H$3:$H$122=Sheet1!$B$3))-ROW(Sheet2!$E$3)+1,ROW(A1))),"")

与放置上述公式的最后一列相邻,使用K3的公式,但调整为使用放置上述公式的位置的单元格引用。然后根据需要将所有五个单元格复制下来。

概念验证II

POCII

更新2

=IFERROR(INDEX(Sheet2!E$3:E$122,AGGREGATE(15,6,ROW(Sheet2!$E$3:$E$122)/(((Sheet2!$E$3:$E$122=Sheet1!$B$3)+(Sheet2!$H$3:$H$122=Sheet1!$B$3))*(Sheet2!$F$3:$F$122<>""))-ROW(Sheet2!$E$3)+1,ROW(A1))),"")

上述公式还会检查是否仅在F列中输入了值。它的工作原理是,如果在F中有分数,将在G中输入相应的分数。如果你真的想要同时检查两者,那么重复这一部分,但将其改为G:

*(Sheet2!$F$3:$F$122<>"")

+作为和OR运算符,*作为AND运算符。等式的这一部分是逻辑检查,当单独检查为真时(或者在OR检查的情况下,单独检查之一),其值仅为1:

(((Sheet2!$E$3:$E$122=Sheet1!$B$3)+(Sheet2!$H$3:$H$122=Sheet1!$B$3))*(Sheet2!$F$3:$F$122<>""))