我正在使用Excel学习Rock Paper Scissors的心理学。我将游戏保存在一个名为 Games 的表中,列 Player0 (使用的是什么玩家0), Player1 和 Winner (可以是0,1或T代表领带)。
我想知道使用每个选项(1)(左侧的表)获得了多少胜利,所以我需要迭代表中的每一行以检查是否使用例如rock进行了胜利。 / p>
我尝试使用以下COUNTIF for rock
=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)示例:摇滚胜利将是Rock vs Scissor比赛。
答案 0 :(得分:3)
使用以下
=COUNTIFS(C:C,"R",E:E,"0")+COUNTIFS(D:D,"R",E:E,"1")
将pp更改为S,然后相应地将P更改为ppapper或siccor胜利
在I7中使用以下内容:
=COUNTIF(E:E,"T")
在I8中使用以下内容:
=COUNTA(E:E)-1
OR
=SUM(I4:I7)
-1是考虑标题行。
要获得百分比,请在J4中使用以下内容并复制:
=I4/$I$8
警告:最后一个条目下方的所有单元格都必须为空白。
概念证明
用于确定E栏中的获胜者结果:
=IF(C2=D2,"T",IF(OR(AND(C2="R",D2="S"),AND(C2="P",D2="R"),AND(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<>""))
现在不使用类似操作的数组的原因是你不想使用完整的列引用,因为它会添加大量的额外计算。好处是你可以获得信息,即使用你桌子下面的细胞而不让它们把你的计数丢掉。
答案 1 :(得分:1)