将公式应用于列中的所有单元格,而不是一次只应用一个?

时间:2011-03-21 00:41:54

标签: openoffice-calc

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

4 个答案:

答案 0 :(得分:16)

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

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

要强制公式使用绝对引用,可以使用美元符号指定单元格地址 - $ C $ 1将始终指向(使用)单元格C1的内容,无论公式最终位于何处。 ($ C1和C $ 1是交替,允许地址的一个参数在通常的相对意义上改变,同时将另一半固定到位......这对你来说可能并不重要)。

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

答案 1 :(得分:2)

如果您想延长范围,可以通过使用公式计算前2个单元格然后突出显示它们来完成此操作。现在,您可以抓住突出显示区域右下角的小方块,然后将其向下,横向或两者拖动。

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

向下延伸

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

延伸

=G2*$D2
=H2*$D2

向下扩展

Use $D$2

答案 2 :(得分: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,因为这会破坏数组函数并将其转换为常规函数功能)

答案 3 :(得分:-1)

我需要类似的东西,只是我需要绝对参考,同时以水平方式扩展公式,但相对参考以垂直方式扩展它。

以下来自OpenOffice论坛的文章对我有帮助,也许它对其他人也有好处:

http://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=2443