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

问题描述 投票:8回答:4

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

openoffice-calc
4个回答
16
投票

我没有在我面前使用OpenOffice,但它在很多方面都很难成为Excel,因此通常基于Excel的Calc假设与现实相当接近。

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

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

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


2
投票

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

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

延伸下来

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

横跨延伸

=G2*$D2
=H2*$D2

向下延伸和跨越

Use $D$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办公室,你写了一个数组公式的方法是按ctrl + shift + enter。永远不要按enter,因为这将破坏数组函数并将其转换为常规函数)


-1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.