【问题标题】:Use If flexibly to get average灵活使用 If 获取平均值
【发布时间】:2017-11-22 16:24:03
【问题描述】:

我想计算多个受试者的响应时间,但有一个限制:只有正确试验的响应时间才应包含在平均值中。我的数据结构如下所示(为简单起见,我只展示了 3 个受试者和 10 个试验,实际上,我还有更多)

我想获得每个试验的 subj1、subj2 和 subj2 的 RT 平均值。只有正确的试验才包括在平均值中。 0 和 1 分别用于表示不正确和正确的试验。例如,对于单元格 G2,我只会在平均值中包含 B2 和 D2,F2 被忽略,因为该受试者的该试验的 ACC 为 0。我想象使用 If AND 函数来包含适当的 RT,但有很多受试者,这变得非常笨拙。有没有人对此有聪明的解决方案?

【问题讨论】:

    标签: excel if-statement average


    【解决方案1】:

    自从0 * anything = 0G2 = SUM(A2*B2,C2*D2,E2*F2)/SUM(A2,C2,E2)

    【讨论】:

    • 伟大而简单的解决方案!谢谢!!
    【解决方案2】:

    您可以使用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")

    注意“偏移”范围

    【讨论】:

    • 这绝对是更可扩展的!
    • 您甚至可以使用 =AVERAGEIF(A2:E2,1,B2:F2) 但如果任何 RT 列的值可以为 1,则会得到错误的结果
    • 在那些 RT 列中不会出现 1。感谢您的帮助!
    • 实际上我想您可以使用 AVERAGEIFS 来获得与我的第一个建议相同的结果....但没有 CSE 并且更短,请参阅上面的编辑
    猜你喜欢
    • 2011-06-03
    • 2013-06-21
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多