在几个单元格上迭代一个函数

时间:2018-04-02 14:38:16

标签: libreoffice libreoffice-calc

我有一张数字表,表示几名员工每天工作的小时数。每个单元格对于一名员工来说是一天。有些单元格包含一个“*”字符,表示那些小时数对部门总数没有贡献。在计算部门总数时,我只是对所有单元格求和,而calc忽略那些包含星号的值。但是,当我计算个别员工的小时数时,我想包括这些小时数。

经过一些实验,我得出了以下笨重的公式:

=SUM(VALUE(SUBSTITUTE(C22,"*","")),VALUE(SUBSTITUTE(D22,"*","")),VALUE(SUBSTITUTE(E22,"*","")),VALUE(SUBSTITUTE(F22,"*","")),VALUE(SUBSTITUTE(G22,"*","")),VALUE(SUBSTITUTE(H22,"*","")),VALUE(SUBSTITUTE(I22,"*","")))

虽然这有效,但太糟糕了!有没有办法在一组单元格上迭代一组函数?类似的东西:

=SUM(ITERATE_FUNCTION(VALUE(SUBSTITUTE(X,"*","")),C22:I22))

或者有更简单的方法来实现我的目标吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

我相信这会奏效:

=SUM(NUMBERVALUE(SUBSTITUTE(CONCATENATE(D22:I22),"*","")))

当你完成输入后按CTRL-SHIFT-ENTER,这样公式就变成了一个数组公式,公式将如下所示:

{=SUM(NUMBERVALUE(SUBSTITUTE(CONCATENATE(D3:H3),"*","")))}

答案 1 :(得分:1)

对于Calc,有一个超级幂函数用于处理多个值:SUMPRODUCT。只需一点创造力,就可以做任何事情。

=SUMPRODUCT(VALUE(SUBSTITUTE(C22:I22;"*";"")))

它充当数组函数,但不需要 Ctrl + Shift + Enter ,使得很多更容易。