libreoffice-calc - 如何在 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 次计数中被计算两次)。
解决方案
这是SUMPRODUCT
可以用来做的。
=SUMPRODUCT(A1:D1,{4,3,2,1})
将计算A1*4+B1*3+C1*2+D1*1
,如果A1
,或为空白B1
,则导致。C1
D1
0
0*n
而在
=SUMPRODUCT(NOT(ISBLANK(A1:D1)),{4,3,2,1})
导致if 、和不是空白的,或者导致ifNOT(ISBLANK(A1:D1)
是空白的。因此,如果所有内容都不为空白,则公式导致( ),如果 为空白,则导致( ) 。{1,1,1,1}
A1
B1
C1
D1
{1,1,0,1}
C1
10
4+3+2+1
8
4+3+0+1
C1
把它们放在一起:
=SUMPRODUCT(A1:D1,{4,3,2,1})/SUMPRODUCT(NOT(ISBLANK(A1:D1)),{4,3,2,1})