我在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公式。
非常感谢您的建议。
感谢。
奥米德
答案 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并根据需要向下复制。
当您将G1更改为B队,C队等时,列表将更新。如果您进一步向下复制,将显示空单元格而不是错误。这是假设同一个团队永远不会发挥自己的作用。如果您的数据不是从第1行开始,请确保将行(A1)指向A1而不是数据范围的左上角。它在复制时充当了一个计数器。
由于这是在公式内执行数组操作,因此最好不要使用完整列引用,而是将列引用限制为接近您使用的行数,以避免在空行上进行计算。
根据您的评论调整公式如下,并放置在需要的位置。将其复制到右侧,这样您总共有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
=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<>""))