8

在 OpenOffice.org Calc 中,我想将公式应用于引用同一行但在不同列中的单元格的列。即,=C1*48在单元格 D1 中,但我希望 D 列中的所有单元格都执行此操作,而不必手动将公式复制到每个单元格。或者换一种说法,对于 C 中每个有数字的单元格,我想用基于该数字的公式值填充 D 中的相应行单元格。到目前为止,我从文档中看到的只是我必须为电子表格中的每个新行复制/调整公式。而且由于我有 4 个这样的列需要计算,这将变得很烦人。我对电子表格几乎没有经验,所以我希望我的问题实际上非常简单,我只是在查看文档的错误部分。

4

3 回答 3

17

我面前没有 OpenOffice,但它在很多方面都非常努力地成为 Excel,所以通常关于基于 Excel 的 Calc 的假设非常接近现实。

在 Excel 中,单元格 D1 中指向 C1 中的单元格的公式被视为相对引用 - 即,从我现在所在的位置返回一列。因此,当该公式填充到其他单元格时(通过Fill Down,或拖动单元格轮廓角落的小手柄,或通过将公式复制粘贴到选定单元格的范围中),新公式将被类似地处理,通过默认情况下,指的是在同一行中距它们一列的单元格。

要强制公式使用绝对引用,请使用美元符号指定单元格地址 - $C$1 将始终指向(使用)单元格 C1 的内容,无论公式在哪里结束。($C1 和 C$1 是替代项,它们允许地址的一个参数以通常的相对意义发生变化,同时将另一半固定在适当的位置……这对您来说可能并不重要)。

换句话说,我希望您可以在 OpenOffice Calc 表的第一行中键入公式并将它们复制到该行的其余部分,这样就可以正常工作。

于 2011-03-21T01:10:57.583 回答
4

如果您想向下扩展您的范围,您可以通过使用公式计算前 2 个单元格然后突出显示它们来做到这一点。您现在抓住突出显示区域右下角的小方块并将其向下、横向或同时拖动。

如果您有一个特定的单元格(例如 D2),您希望将其保留在您将范围扩展到的所有单元格中,那么在您的 2 个初始单元格计算中使用以下内容:

向下延伸

=G2*D$2
=G3*D$2

跨越

=G2*$D2
=H2*$D2

向下延伸

Use $D$2
于 2014-07-25T10:40:50.310 回答
0

从您的问题来看,您似乎正在尝试对整行(或列)单元格应用相同的公式,并在另一行(或列)上显示结果。

最好的方法是使用数组公式或数组函数(在 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,因为这会破坏数组函数并将其转换为常规函数)

于 2018-08-31T17:02:13.557 回答