遍历表行

我正在用Excel来研究Rock Paper Scissors的心理学。 我将游戏保存在一个名为“ 游戏”的表格中,其中列出了Player0 (使用哪个玩家0), Player1Winner (对于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

POC

奖金

为了确定列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<>"")) 

现在不使用类似操作的数组的原因是你不想使用完整的列引用,因为它会增加很多额外的计算。 好处是你可以有信息,即使用桌子下面的单元格,然后让他们抛出你的计数。