多列if语句 – Excel
我试图find一个公式来检查两个不同列中的条件,然后计算相应值的平均值。 以下示例反映了我想实现的目标。 比方说,我想find西北城市的平均水平。
我已经用这样一个数组函数确定了西方城市的平均水平:
=AVERAGE(IF($C$3:$C$10={"LA","SF","POR","SEA"},$D$3:$D$10))
然后按Ctrl + Shift + Enter
由于我的数据是如何组织的,这个以前的公式是唯一可以确定(有点手动)一个城市是位于东部还是西部海岸的方法。
现在我错过了会说“ 还有,如果上一列说'北' ”
用数组函数更新
第一次尝试 :
所以起初我以为你可以像这样添加第二个条件到数组函数:
=AVERAGE(IF(AND($C$2:$C$9={"LA","SF","POR","SEA"},$B$2:$B$9={"North"}),$D$2:$D$9))
AND
会要求每个项目是真实的,但这似乎没有奏效 …和数组函数是棘手的野兽去debugging。
第二次尝试 :
相反,你可以做的是用第二个IF来扩展IF
函数 。 所以如果第一个是真的,那么这个值应该返回另一个检查第二个标准的IF。 只有符合这两个标准,才能返回分数,否则它将不会返回任何东西,而不会被平均函数拾取。
所以最后的东西应该是这样的:
=AVERAGE(IF($C$2:$C$9={"LA","SF","POR","SEA"},IF($B$2:$B$9={"North"},$D$2:$D$9)))
命名数组
由于您无法创build一列来存储与西方哪个城市相关的数据,如果您有方法可以轻松地更新此信息,而不是在整个函数中对其进行硬编码,那么这将是最好的。 你可以做的一件事就是定义一个名字以便以后参考。
只需进入Formulas Ribbon> Defined Names Section> Name Manager> New
然后创build西部城市值的数组作为稍后使用的命名参数
那么你可以在公式中使用它来代替这样的数组:
=AVERAGE(IF(C2:C9=WestCities,IF(B2:B9="North",D2:D9)))
使用数据透视表
这是我的build议:
首先,为East / West添加一列,这样就不会将数据填充到公式中
然后添加一个数据透视表,它会为你做所有的计算。
像这样设置(确保按平均值(而非总和)进行汇总:
它会看起来像这样:
如果你想保持你的原始格式,你可以像这样运行数据透视表的公式:
=GETPIVOTDATA("Score",Sheet4!$A$3,"E/W","West","S/N","North")
与西方列
另外,如果你有能力添加一个西方的列,你可以很容易地检查这与AVERAGEIFS有这样的多个标准:
=AVERAGEIFS(D2:D9,A2:A9,"West",B2:B9,"North")