我有一个 Excel 工作簿,其中包含很多并列的列。每列中有两个并列的日期,我想计算它们的平均值。我有大约 7 列,每列都包含两个需要计算平均值的日期。我使用公式 =AVERAGE(27:27),以为它会分别计算每列中的两个日期的平均值,但事实并非如此。它取所有 14 个日期(7 列 x 每列 2 个日期)并将它们全部一起计算平均值。我需要一个公式,可以分别计算每列中所有日期的平均值,而不会影响其他日期。
有人知道我该如何实现这一点吗?我将在工作簿中使用更多列,因此我需要一个公式,这样每次添加列时就不必编辑它。为了清楚起见,我的日期是水平排列的,所以当我说列时,我的意思是两列在一起。
答案1
根据上面的问答,听起来每个单元格(在给定的行和列)包含两个日期。根据描述,这是一行和 7 列总共包含 14 个日期的唯一方法。
在这种情况下,下面的公式假设行为 27,列为 A 到 G。我还假设每个单元格中的两个日期由换行符分隔(即在 ASCII 代码为 10 的单元格中按 ALT+Enter,但这可以很容易地替换为另一个字符,例如空格)。
完成此操作需要 3 个步骤,解析两个日期,然后计算它们的平均值。
第一次约会:
=DATEVALUE(LEFT(A27,SEARCH(CHAR(10),A27,1)-1))
从内到外的解释:
SEARCH
= 查找字符第一个实例的位置,在本例中为换行符或CHAR(10)
。LEFT
= 提取位于给定位置左侧的字符串部分(也就是换行符的左侧)。DATEVALUE
= 将提取的字符串转换为日期。
获得第二次约会:
=RIGHT(A27,LEN(A27)-SEARCH(CHAR(10),A27))
RIGHT
从字符串的右侧开始并返回指定数量的字符。这里,我们根据换行符的位置,从长度中获取剩余的字符数。
综合起来:
=AVERAGE(DATEVALUE(LEFT(A27,SEARCH(CHAR(10),A27,1)-1)),RIGHT(A27,LEN(A27)-SEARCH(CHAR(10),A27)))
这将计算 1 列值的平均值。您可以更改单元格(从 A27 更改为 B27、C27、D27 等)以计算剩余单元格的平均值。
下面的截图显示了我假设的输入数据的样子(最终公式的结果在第 29 行)。
编辑1:一个拼写错误,我想指出的是,如果日期由另一个字符分隔,请使用十进制值这张桌子在CHAR
公式的部分。
编辑2:固定公式,可靠地获取第二个日期,无论长度如何。
编辑3:作为参考,以下是 A 列和 B 列中的公式,以便您看到发生了什么变化:
=AVERAGE(DATEVALUE(LEFT(A27,SEARCH(CHAR(10),A27,1)-1)),RIGHT(A27,LEN(A27)-SEARCH(CHAR(10),A27)))
=AVERAGE(DATEVALUE(LEFT(B27,SEARCH(CHAR(10),B27,1)-1)),RIGHT(B27,LEN(B27)-SEARCH(CHAR(10),B27)))