首页 > 解决方案 > 如何在 LibreOffice Calc 中自动忽略空单元格(并在以后的函数中调整它们的角色)?

问题描述

假设我有一对四个数据点:

A   B   C   D
90  80  70  60
90  90      90

在E列,我希望有一个功能,比如:

=((A1*4)+(B1*3)+(C1*2)+(D1))/10

如何调整此公式,以便在有空单元格时,公式会自动从公式中删除该单元格?这样做,这应该改变最终公式的分母;如果 C 是一个空单元格,我想将整个公式除以 8,而不是除以 10(因为 C 在公式的最终 10 次计数中被计算两次)。

标签: libreoffice-calc

解决方案


这是SUMPRODUCT可以用来做的。

=SUMPRODUCT(A1:D1,{4,3,2,1})

将计算A1*4+B1*3+C1*2+D1*1,如果A1,或为空白B1,则导致。C1D100*n

而在

=SUMPRODUCT(NOT(ISBLANK(A1:D1)),{4,3,2,1})

导致if 、和不是空白的,或者导致ifNOT(ISBLANK(A1:D1)是空白的。因此,如果所有内容都不为空白,则公式导致( ),如果 为空白,则导致( ) 。{1,1,1,1}A1B1C1D1{1,1,0,1}C1104+3+2+184+3+0+1C1

把它们放在一起:

=SUMPRODUCT(A1:D1,{4,3,2,1})/SUMPRODUCT(NOT(ISBLANK(A1:D1)),{4,3,2,1})

推荐阅读