我试图找到一个公式来检查两个不同列中的条件,然后计算相应值的平均值。以下示例反映了我想要实现的目标。让我们说我想找到西北城市的平均值。
我已经确定了具有数组函数的西部城市的平均值:
=AVERAGE(IF($C$3:$C$10={"LA","SF","POR","SEA"},$D$3:$D$10))
然后按 Ctrl + Shift + Enter
由于我的数据组织方式,以前的公式是我能够(手动地)确定一个城市是位于东海岸还是西海岸的唯一方式。
现在我错过了会说" 的部分。如果前面的专栏说过' north' "
答案 0 :(得分:1)
首次尝试:
所以起初我以为你可以像这样在数组函数中添加第二个条件:
=AVERAGE(IF(AND($C$2:$C$9={"LA","SF","POR","SEA"},$B$2:$B$9={"North"}),$D$2:$D$9))
AND
要求每个项目都是真的,但这看起来没有效果 ...并且数组函数是棘手的野兽来调试。
第二次尝试:
相反,您可以做的是使用第二个IF扩展IF
函数。因此,如果第一个为真,则该值应返回另一个检查第二个条件的IF。只有当它满足两个标准时,才能返回分数,否则它仍然不会返回任何内容,而这些内容将无法通过平均函数获取。
所以最后的事情应该是这样的:
=AVERAGE(IF($C$2:$C$9={"LA","SF","POR","SEA"},IF($B$2:$B$9={"North"},$D$2:$D$9)))
由于您无法创建用于存储与西部城市相关的数据的列,因此最好是通过某种方式轻松更新此信息,而不是在整个功能中对其进行硬编码。您可以做的一件事是定义一个名称以便稍后引用。
转到Formulas Ribbon>定义名称部分>名称管理员>新
然后创建西部城市值数组作为稍后使用的命名参数
然后你可以在公式中使用它来代替数组:
=AVERAGE(IF(C2:C9=WestCities,IF(B2:B9="North",D2:D9)))
这是我的建议:
首先,为East / West添加一列,这样就不会将数据填充到公式中
然后添加一个数据透视表,它将为您完成所有计算。
像这样设置(确保按平均值(不是总和)聚合:
它看起来像这样:
如果您想保留原始格式,可以直接从数据透视表中运行公式:
=GETPIVOTDATA("Score",Sheet4!$A$3,"E/W","West","S/N","North")
此外,如果你能够在西方添加一个列,你可以使用AVERAGEIFS轻松检查这个,并使用多个标准:
=AVERAGEIFS(D2:D9,A2:A9,"West",B2:B9,"North")