在 OpenOffice.org Calc 中,我想将公式应用于引用同一行但在不同列中的单元格的列。即,=C1*48
在单元格 D1 中,但我希望 D 列中的所有单元格都执行此操作,而不必手动将公式复制到每个单元格。或者换一种说法,对于 C 中每个有数字的单元格,我想用基于该数字的公式值填充 D 中的相应行单元格。到目前为止,我从文档中看到的只是我必须为电子表格中的每个新行复制/调整公式。而且由于我有 4 个这样的列需要计算,这将变得很烦人。我对电子表格几乎没有经验,所以我希望我的问题实际上非常简单,我只是在查看文档的错误部分。
3 回答
我面前没有 OpenOffice,但它在很多方面都非常努力地成为 Excel,所以通常关于基于 Excel 的 Calc 的假设非常接近现实。
在 Excel 中,单元格 D1 中指向 C1 中的单元格的公式被视为相对引用 - 即,从我现在所在的位置返回一列。因此,当该公式填充到其他单元格时(通过Fill Down,或拖动单元格轮廓角落的小手柄,或通过将公式复制粘贴到选定单元格的范围中),新公式将被类似地处理,通过默认情况下,指的是在同一行中距它们一列的单元格。
要强制公式使用绝对引用,请使用美元符号指定单元格地址 - $C$1 将始终指向(使用)单元格 C1 的内容,无论公式在哪里结束。($C1 和 C$1 是替代项,它们允许地址的一个参数以通常的相对意义发生变化,同时将另一半固定在适当的位置……这对您来说可能并不重要)。
换句话说,我希望您可以在 OpenOffice Calc 表的第一行中键入公式并将它们复制到该行的其余部分,这样就可以正常工作。
如果您想向下扩展您的范围,您可以通过使用公式计算前 2 个单元格然后突出显示它们来做到这一点。您现在抓住突出显示区域右下角的小方块并将其向下、横向或同时拖动。
如果您有一个特定的单元格(例如 D2),您希望将其保留在您将范围扩展到的所有单元格中,那么在您的 2 个初始单元格计算中使用以下内容:
向下延伸
=G2*D$2
=G3*D$2
跨越
=G2*$D2
=H2*$D2
向下延伸
Use $D$2
从您的问题来看,您似乎正在尝试对整行(或列)单元格应用相同的公式,并在另一行(或列)上显示结果。
最好的方法是使用数组公式或数组函数(在 libre office 中)。这个链接有很好的解释 - https://help.libreoffice.org/Calc/Array_Functions
在您的情况下实施此方法的方式是
Type this formula in cell D1
=C1:C30 *48
and press ctrl + shift + enter
带有花括号的公式现在看起来像这样{..}
={C1:C30 *48}
并且公式从 D1 一直应用到 D30。
您甚至可以将相同的概念外推到整个矩阵(例如A1:C10
:)
(告诉 excel/open office/libre office 你写了一个数组公式的方法是按ctrl + shift + enter
。永远不要按enter
,因为这会破坏数组函数并将其转换为常规函数)