如何在 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
,如果 A1
、B1
、C1
或 D1
为空,这将导致 0
在 0*n
然后.
并且在
=SUMPRODUCT(NOT(ISBLANK(A1:D1)),{4,3,2,1})
如果 A1
、B1
、C1
和 D1
不为空,则 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})
假设我有一对四个数据点:
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})
如果 A1
、B1
、C1
和 D1
不为空,则 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})