Применить формулу ко всем ячейкам в столбце, а не только к одной за раз?

В OpenOffice.org Calc я хотел бы применить формулу к столбцу, который ссылается на ячейку из той же строки, но в другом столбце. То есть =C1*48 в ячейке D1, но я хочу, чтобы все ячейки в столбце D делали это без необходимости копировать формулу в каждую вручную. Или, другими словами, для каждой ячейки в C, имеющей число, я хочу заполнить соответствующую ячейку-строку в D значением формулы, основанным на этом числе. Пока все, что я вижу из документации, это то, что мне придется копировать/настраивать формулу для каждой новой строки в электронной таблице. А так как у меня есть 4 таких столбца, которые нужно вычислить, это будет утомительно. У меня вообще мало опыта работы с электронными таблицами, поэтому я надеюсь, что моя проблема на самом деле очень проста и что я просто смотрю не те части документации.


person rjray    schedule 21.03.2011    source источник
comment
Мне нужно было что-то подобное, просто мне нужна была абсолютная ссылка при расширении формулы по горизонтали, а относительная ссылка при расширении ее по вертикали. Мне очень помогла следующая статья с форума OpenOffice, возможно, она будет полезна и другим: ‹forum.openoffice.org/en/forum/viewtopic.php?f=9&t=2443  -  person AamodG    schedule 19.04.2013


Ответы (3)


У меня нет перед собой OpenOffice, но он очень старается быть похожим на Excel во многих отношениях, поэтому обычно предположения о Calc, основанном на Excel, довольно близки к реальности.

В Excel формула в ячейке D1, указывающая на ячейку в C1, рассматривается как относительная ссылка, то есть на один столбец от того места, где я сейчас нахожусь. Поэтому, когда эта формула вставляется в другие ячейки (либо с помощью Заполнить вниз, либо путем перетаскивания маленького маркера в углу контура ячейки, либо путем копирования и вставки формулы в диапазон выбранных ячеек), новые формулы по умолчанию обрабатываются аналогичным образом как относящиеся к ячейке, которая находится на расстоянии одного столбца от них в той же строке.

Чтобы заставить формулу использовать абсолютную ссылку, нужно указать адрес ячейки со знаком доллара — $C$1 всегда будет указывать (использовать) содержимое ячейки C1, независимо от того, где заканчивается формула. ($C1 и C$1 - это альтернативы, которые позволяют одному параметру адреса изменяться в обычном относительном смысле, в то время как другая половина фиксируется на месте... это, вероятно, пока не важно для вас).

Другими словами, я ожидаю, что вы сможете ввести формулы в первой строке вашего листа OpenOffice Calc и скопировать их в остальную часть строки, и все будет работать.

person Mikeb    schedule 21.03.2011

Если вы хотите расширить свой диапазон, вы можете сделать это, рассчитав первые 2 ячейки с помощью формулы, а затем выделив их. Теперь вы берете маленький квадрат в правом нижнем углу выделенной области и перетаскиваете его вниз, поперек или и то, и другое.

Если у вас есть определенная ячейка (например, D2), которую вы хотите оставить во всех ячейках, на которые вы расширяете свой диапазон, то в ваших двух начальных вычислениях ячеек используйте следующее:

Расширение вниз

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

Расширение

=G2*$D2
=H2*$D2

Расширение вниз и поперек

Use $D$2
person Martin    schedule 25.07.2014
comment
Это было идеально для того, что мне было нужно: обновить только значение поиска в функции vlookup, но запретить инструменту увеличивать значения данных. Идеально! - person th3morg; 07.01.2015

Из вашего вопроса кажется, что вы пытаетесь применить одну и ту же формулу ко всей строке (или столбцу) ячеек и показать результат в другой строке (или столбце).

Лучший способ сделать это — использовать так называемые формулы массива или функции массива (в 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, так как это сломает функцию массива и преобразует ее в обычную функцию)

person Prashant Bharadwaj    schedule 31.08.2018