如何计算excel中复杂条件下的平均值

时间:2015-03-03 12:44:02

标签: excel

我会尽力解释这一点。

我有一个用SQL提取的数据表。我的目标是计算列中某些单元格的平均值。有一个条件是单元格所在的行包含一个特定的字母,例如" B"。

我正在处理建筑许可证,他们都有以下形式的身份证:" 12-3456-12-B"。这封信类似于许可证的类型,以及我希望如何划分我的平均值。在列中,我希望从中提取平均值,其百分比类似于上述许可证的修复程度。

所以我想要的是对个别许可类型进行平均维修。

在逻辑视角:"如果当前行中的单元格B包含ie" -B""

,请使用该值

干杯!

2 个答案:

答案 0 :(得分:3)

如果ID位于B列,C列中的%s,则使用带有AVERAGEIF的Excel中的"wildcard"函数非常简单,例如

=AVERAGEIF(B:B,"*B",C:C)

该公式平均列C,其中同一行上的B列条目以" B"

结束

答案 1 :(得分:0)

到目前为止你尝试了什么?有什么特别的问题吗?

从我的观点来看,你基本上有两个选择:

1)您使用Excel公式

2)您使用VBA(推荐)

使用选项1可以通过多种方式完成。最简单的可能是为每个许可类型使用一个新列,然后在那里使用简单的IF公式来获取值RIGHT(yourCell, 1)是B或C或其他什么。然后,您执行COUNTIF以获取该列中的条目数,这将使您能够计算列值的平均值。

另一种方式是通过VLOOKUP。使用这个你可以建立你自己的矩阵然后计算平均值(我希望这个比上面的方法更好)。

现在选择2(VBA):

这不会让你的实际Excel表格膨胀,这是一个很大的优点。为每个许可类型获取一个数组,只需使用一个简单的循环来解析工作表中的每一行(包含内容),并将修复程度值添加到相应的数组中。完成后只需解析每个数组,计算平均值并将它们写回表单中的一些不错的结果表。