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

How do I automatically ignore empty cells (and adjust their role in a later function) in 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,如果 A1B1C1D1 为空,这将导致 00*n 然后.

并且在

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

如果 A1B1C1D1 不为空,则 NOT(ISBLANK(A1:D1) 会导致 {1,1,1,1},否则会导致 {1,1,0,1} 如果 C1 为空。因此,如果所有内容都不为空,则公式将导致 10 (4+3+2+1),如果 C1 为空,则公式将导致 8 (4+3+0+1)。

综合起来:

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