遍历表行
我正在用Excel来研究Rock Paper Scissors的心理学。 我将游戏保存在一个名为“ 游戏”的表格中,其中列出了Player0 (使用哪个玩家0), Player1和Winner (对于Tie可以是0,1或者T)。
我想知道使用每个选项(1)(表左边)获得了多less胜利,所以我需要遍历表中的每一行以检查是否使用例如rock进行了胜利。
我尝试使用以下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)举例:Rock Win将是Rock vs Scissor的比赛。
Rock Win:
=COUNTIFS(C:C,"<>T",A:A,"R",B:B,"S")+COUNTIFS(C:C,"<>T",A:A,"S",B:B,"R")
纸赢:
=COUNTIFS(C:C,"<>T",A:A,"R",B:B,"P")+COUNTIFS(C:C,"<>T",A:A,"P",B:B,"R")
剪子赢:
=COUNTIFS(C:C,"<>T",A:A,"P",B:B,"S")+COUNTIFS(C:C,"<>T",A:A,"S",B:B,"P")
领带:
=COUNTIF(C:C,"T")
在I4中使用以下内容
=COUNTIFS(C:C,"R",E:E,"0")+COUNTIFS(D:D,"R",E:E,"1")
将R改为S,然后相应地为Ppapper或Siccor获胜
在I7中使用以下内容:
=COUNTIF(E:E,"T")
在I8中使用以下内容:
=COUNTA(E:E)-1 OR =SUM(I4:I7)
-1就是说明标题行。
让你的百分比在J4中使用以下内容并复制下来:
=I4/$I$8
警告:最后一个条目下面的所有单元格都必须是空白的。
概念validation
奖金
为了确定列E中的赢者结果:
=IF(C2=D2,"T",IF(OR(AND(C2="R",D2="S"),AND(C2="P",D2="R"),AND(C2="S",D2="P")),0,1))
备选
(但不是最好的!
由于有多种处理方式,下面是一个选项,它可以通过像数组一样进行数组处理,而不需要数组:
分别为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,您可以select使用以下列的E列结果:
=SUMPRODUCT(--($E$2:$E$23=LEFT($H7)))
或者通过传递您的列E结果并使用:
=SUMPRODUCT(--(C2:C23=D2:D23))
要得到您的总匹配,要么总结上面的结果或使用
=SUMPRODUCT(--(C2:C23<>""))
现在不使用类似操作的数组的原因是你不想使用完整的列引用,因为它会增加很多额外的计算。 好处是你可以有信息,即使用桌子下面的单元格,然后让他们抛出你的计数。