如何在libreoffice calc中计算平均年薪

How to calculate average annual salary in libreoffice calc

我有 10 年的工资数据 table。每列都正确设置了数据类型([=32= 的日期],"C" 和 "E" 的数字。

我正在尝试编写一个公式来计算每年的平均工资。在 "E" 列中,我手动输入了所有可能的年份,在 "F" 列中应该是年平均值,根据 "E".

的年份

所以,我最好的尝试是这个公式:=AVERAGEIF(YEAR(B2:B133);"="&E2;C2:C133)

尝试计算 C 列的平均值,其中 B 列日期中的年份等于 E 列中的年份

但我得到的只是一个错误 Err:504。弄清楚了,那个问题在 YEAR(interval) 部分,但无法得到确切的...

有人能指出来吗?

谢谢!

不幸的是,AVERAGEIF() 需要范围引用而不是计算数组。因此它会出错。至少 Excel 是这样的理论,我希望 LibreCalc 也是如此。

一种解决方法是使用 AVERAGEIFS() 函数并检查一年中的第一天和最后一天,例如:

=AVERAGEIFS(C:C3;B:B3;">="&DATE(E2;1;1);B:B3;"<="&DATE(E2;12;31))

向下拖动公式。

其实有很多可能性可以解决这个问题

  • @JvdV ;
  • 将数组公式与@JvdV 解决方案结合使用;
  • 使用数组公式与 AVERAGE()IF() 的组合;
  • 使用SUMPRODUCT()函数;
  • 当然还有许多我不知道的其他解决方案!

请注意: 根据我的语言环境,我使用 , 而不是 ; 作为公式分隔符;适应您的需求。

关于“数组公式”的附注

这种公式是通过强制按下 Ctrl + Shift + Enter 组合键来插入的,而不仅仅是 EnterTab 或鼠标单击 [=80= 上的其他地方].
生成的公式显示在括号 {} 之间,这不是用户插入的,而是软件自动显示的,以告知这实际上是一个数组公式。
有关数组公式的更多信息,即 on the LibreOffice help system.

通常你不能拖放数组公式,你必须复制粘贴它们。

带@JvdV解法的数组公式

JvdV的解可以这样稍微修改,然后插入数组公式:

=AVERAGEIFS(C:C3,YEAR($B:$B3),"="&E2)

当您使用 Ctrl + Shift + Enter 组合键插入此公式时,软件会将公式放入括号中,因此您会看到这样的公式:{=AVERAGEIFS(C:C3,YEAR($B:$B3),"="&E2)}

您不能简单地向下拖动公式,但可以复制粘贴它。

包含 AVERAGE()IF() 组合的数组公式:

对于您的示例,将此公式放入单元格 F2(对于 2010 年):

=AVERAGE(IF(YEAR($B:$B3)=E2,$C:$C3))

当您使用 Ctrl + Shift + Enter 组合键插入此公式时,软件会将公式放入括号中,因此您会看到这样 {=AVERAGE(IF(YEAR($B:$B3)=E2,$C:$C3))}

您不能简单地向下拖动公式,但可以复制粘贴它。

SUMPRODUCT() 公式:

我爱的人...
网上有很多资源可以解释这个公式。
在您的情况下,这将给出:

=SUMPRODUCT($C:$C3,--(YEAR($B:$B3)=E2))/SUMPRODUCT(--(YEAR($B:$B3)=E2))

这个你可以拖到你的需要。