В OpenOffice.org Calc я хотел бы применить формулу к столбцу, который ссылается на ячейку из той же строки, но в другом столбце. То есть =C1*48
в ячейке D1, но я хочу, чтобы все ячейки в столбце D делали это без необходимости копировать формулу в каждую вручную. Или, другими словами, для каждой ячейки в C, имеющей число, я хочу заполнить соответствующую ячейку-строку в D значением формулы, основанным на этом числе. Пока все, что я вижу из документации, это то, что мне придется копировать/настраивать формулу для каждой новой строки в электронной таблице. А так как у меня есть 4 таких столбца, которые нужно вычислить, это будет утомительно. У меня вообще мало опыта работы с электронными таблицами, поэтому я надеюсь, что моя проблема на самом деле очень проста и что я просто смотрю не те части документации.
Применить формулу ко всем ячейкам в столбце, а не только к одной за раз?
Ответы (3)
У меня нет перед собой OpenOffice, но он очень старается быть похожим на Excel во многих отношениях, поэтому обычно предположения о Calc, основанном на Excel, довольно близки к реальности.
В Excel формула в ячейке D1, указывающая на ячейку в C1, рассматривается как относительная ссылка, то есть на один столбец от того места, где я сейчас нахожусь. Поэтому, когда эта формула вставляется в другие ячейки (либо с помощью Заполнить вниз, либо путем перетаскивания маленького маркера в углу контура ячейки, либо путем копирования и вставки формулы в диапазон выбранных ячеек), новые формулы по умолчанию обрабатываются аналогичным образом как относящиеся к ячейке, которая находится на расстоянии одного столбца от них в той же строке.
Чтобы заставить формулу использовать абсолютную ссылку, нужно указать адрес ячейки со знаком доллара — $C$1 всегда будет указывать (использовать) содержимое ячейки C1, независимо от того, где заканчивается формула. ($C1 и C$1 - это альтернативы, которые позволяют одному параметру адреса изменяться в обычном относительном смысле, в то время как другая половина фиксируется на месте... это, вероятно, пока не важно для вас).
Другими словами, я ожидаю, что вы сможете ввести формулы в первой строке вашего листа OpenOffice Calc и скопировать их в остальную часть строки, и все будет работать.
Если вы хотите расширить свой диапазон, вы можете сделать это, рассчитав первые 2 ячейки с помощью формулы, а затем выделив их. Теперь вы берете маленький квадрат в правом нижнем углу выделенной области и перетаскиваете его вниз, поперек или и то, и другое.
Если у вас есть определенная ячейка (например, D2), которую вы хотите оставить во всех ячейках, на которые вы расширяете свой диапазон, то в ваших двух начальных вычислениях ячеек используйте следующее:
Расширение вниз
=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
, так как это сломает функцию массива и преобразует ее в обычную функцию)