Excel 迭代表行

Excel 迭代表行,excel,excel-formula,Excel,Excel Formula,我在用Excel研究石头剪刀的心理学。我正在将游戏保存在名为games的表中,其中包含列Player0(玩家0使用了什么)、Player1和Winner(可以是0、1或T表示平局) 我想知道使用每个选项(1)(左边的表格)赢得了多少场胜利,因此我需要迭代表格中的每一行,以检查胜利是否是使用(例如)岩石赢得的 我试着用下面的COUNTIF表示摇滚乐 =COUNTIF( Games, IF( IF( $D = 0, $B, IF( $D = 1, $C, FALSE ) ) = "R", TR

我在用Excel研究石头剪刀的心理学。我正在将游戏保存在名为games的表中,其中包含列Player0(玩家0使用了什么)、Player1Winner(可以是0、1或T表示平局)

我想知道使用每个选项(1)(左边的表格)赢得了多少场胜利,因此我需要迭代表格中的每一行,以检查胜利是否是使用(例如)岩石赢得的

我试着用下面的COUNTIF表示摇滚乐

=COUNTIF( Games,   IF( IF( $D = 0, $B, IF( $D = 1, $C, FALSE ) ) = "R", TRUE, FALSE ) )
但我不知道如何访问同一行中的其他列(而不是$D、$B、$C)

预期计数为:

Rock Win - 3
, Paper Win - 0
, Scissor Win - 7
, Tie - 12

(1) 示例:摇滚乐的胜利将是摇滚乐对剪刀的比赛。

在I4中使用以下方法

=COUNTIFS(C:C,"R",E:E,"0")+COUNTIFS(D:D,"R",E:E,"1")
对于ppapper或siccor wins,相应地将R更改为S,然后更改为p

在I7中,请使用以下命令:

=COUNTIF(E:E,"T")
=COUNTA(E:E)-1
OR
=SUM(I4:I7)
在I8中,请使用以下命令:

=COUNTIF(E:E,"T")
=COUNTA(E:E)-1
OR
=SUM(I4:I7)
-1用于说明标题行

要获取您的百分比,请在J4中使用以下内容并复制:

=I4/$I$8
注意:最后一个条目下方的所有单元格都必须为空

概念证明

奖金 对于确定E列中的获胜者结果:

=IF(C2=D2,“T”,IF(或(和(C2=“R”,D2=“S”)和(C2=“p”,D2=“R”)和(C2=“S”,D2=“p”)),0,1))

可供替代的 (但不是首选! 由于有多种处理方法,这里有一个选项可以通过执行类似于数组的计算而不是数组来获取列I的计数:

分别适用于I4至I6

=SUMPRODUCT(($C$2:$C$23=LEFT($H4))*($D$2:$D$23="s")+($C$2:$C$23="s")*($D$2:$D$23=LEFT($H4)))

=SUMPRODUCT(($C$2:$C$23=LEFT($H5))*($D$2:$D$23="r")+($C$2:$C$23="r")*($D$2:$D$23=LEFT($H5)))

=SUMPRODUCT(($C$2:$C$23=LEFT($H6))*($D$2:$D$23="p")+($C$2:$C$23="p")*($D$2:$D$23=LEFT($H6)))
对于I7,您可以选择使用以下方式处理E列结果:

=SUMPRODUCT(--($E$2:$E$23=LEFT($H7)))
或者通过传递列E结果并使用:

=SUMPRODUCT(--(C2:C23=D2:D23))
要获得总匹配,请将上述结果相加或使用

=SUMPRODUCT(--(C2:C23<>""))
=SUMPRODUCT(-C2:C23“”)
现在,不使用类似数组的操作的原因是,您不希望使用完整列引用,因为它将免费添加大量额外计算。好处是您可以获得信息,即使用表格下方的单元格,而不必让它们偏离您的计数。

Rock Win:

=COUNTIFS(C:C,"<>T",A:A,"R",B:B,"S")+COUNTIFS(C:C,"<>T",A:A,"S",B:B,"R")

@pnuts我尝试过使用它,但我在引用同一行中的collumn时遇到了麻烦。例如,假设它从第一行开始,我如何引用同一行中的获胜者collumn?在你显示数据之前很难提出建议谢谢@GowthamShiva,我刚刚重新制定了我的问题,以包含一个图像。你能更新e吗预期的输出也一样?摇滚乐、纸牌乐和剪刀舞winI不太明白你在问什么,但我想我已经解决了。@Gowthamshivae正是我想要写的:)+1
=COUNTIF(C:C,"T")