多列if语句 - Excel

时间:2014-12-15 15:07:33

标签: excel if-statement average array-formulas

我试图找到一个公式来检查两个不同列中的条件,然后计算相应值的平均值。以下示例反映了我想要实现的目标。让我们说我想找到西北城市的平均值。

我已经确定了具有数组函数的西部城市的平均值:

=AVERAGE(IF($C$3:$C$10={"LA","SF","POR","SEA"},$D$3:$D$10))

然后按 Ctrl + Shift + Enter

由于我的数据组织方式,以前的公式是我能够(手动地)确定一个城市是位于东海岸还是西海岸的唯一方式。

现在我错过了会说" 的部分。如果前面的专栏说过' north' "

enter image description here

1 个答案:

答案 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>定义名称部分>名称管理员>新

然后创建西部城市值数组作为稍后使用的命名参数

Named Value

然后你可以在公式中使用它来代替数组:

=AVERAGE(IF(C2:C9=WestCities,IF(B2:B9="North",D2:D9)))

Named Usage

使用数据透视表

这是我的建议:

首先,为East / West添加一列,这样就不会将数据填充到公式中

Data

然后添加一个数据透视表,它将为您完成所有计算。

像这样设置(确保按平均值(不是总和)聚合:

Pivot Setup

它看起来像这样:

Pivot

如果您想保留原始格式,可以直接从数据透视表中运行公式:

=GETPIVOTDATA("Score",Sheet4!$A$3,"E/W","West","S/N","North")

Pivot Formula

使用West Column

此外,如果你能够在西方添加一个列,你可以使用AVERAGEIFS轻松检查这个,并使用多个标准:

=AVERAGEIFS(D2:D9,A2:A9,"West",B2:B9,"North")

AverageIfs