使用如果灵活得到平均水平

我想通过一个限制来计算跨多个主体的响应时间:只有正确的审判的响应时间应该包括在平均水平。 我的数据结构如下(为了简单起见,我只展示了3个主题和10个试验,实际上我还有更多)

表

我想为每个试验获得跨越subj1,subj2和subj2的RT的平均值。 平均只包括正确的试验。 0和1分别用来表示不正确和正确的试验。 例如,对于G2细胞,我只会在平均中包含B2和D2,因为从那个受试者那个试验的ACC是0,所以F2被排除在外。我想象使用If AND函数来包含适当的RT,但是包含许多主题,这变得非常笨拙。 有没有人有一个聪明的解决scheme呢?

由于0 * anything = 0 ,所以G2 = SUM(A2*B2,C2*D2,E2*F2)/SUM(A2,C2,E2)

你可以用AVERAGE和一个可以很容易地扩展到更大范围的数组公式来做到这一点

=AVERAGE(IF((RIGHT(B$1:F$1,2)="RT")*(A2:E2=1),B2:F2)

CTRL + SHIFT + ENTER确认

…或者像这样更简单的AVERAGEIFS

=AVERAGEIFS(B2:F2,A2:E2,1,B$1:F$1,"*RT")

注意“偏移”范围