Я пытаюсь динамически заполнить диапазон ячеек в столбце на основе числа в другой ячейке.
Итак, заполните x количество ячеек значением, скажем, E4. x — значение в ячейке E5.
Если ячейка E4 = 25, заполните ячейки в нужном столбце ниже определенной точки «25» для x количества строк. Если E5 = 5, а начальная точка — A3, то от A3 до A8 будет заполнено «25» или любая желаемая строка или формула.
Для меня это ="Layer" & ROW() - 2, и я хочу заполнить каждую ячейку в этом столбце диапазоном, определенным в E5. Количество ячеек в этой строке будет динамически меняться в зависимости от того, что установлено в E5.
Проблема в том, что я не могу найти способ установить переменную и получить ее значение в форуме одной ячейки, и я также не могу использовать вложенные формулы (SUM(Var1:E1), где Var1 - это строка E2 или что-то в этом роде )
В этом случае, начиная с ячейки A3 = Layer 1, каждая ячейка будет называться Layer 2, а затем Layer 3, пока номер слоя не совпадет со значением в E5.
Мне также нужно иметь возможность подсчитать, сколько слоев для форума в следующем столбце, что зависит от общего количества слоев (плюс 1)
Я действительно не очень разбираюсь в формулах Calc или Excel, но они не следуют соглашению, которое имеет для меня смысл.
Я бы предположил, что вложенная функция суммирования будет работать так: =СУММ(СУММ(A1:A5):A6) или =СУММ((СУММ(A1:A5)):A6), но это не так. И не похоже, что есть способ установить переменные внутри формулы одной ячейки.
Я также попытался создать строку, которая создала бы соответствующую ссылку на ячейку и, следовательно, правильное значение, например =("E"&E1), которое создало бы E5, если для E1 было установлено значение 5, но я не могу использовать это значение в качестве ссылки на ячейку
Я не силен в формулировании вещей, если честно. Я упомянул E4 как пример того, чем можно заполнить финальный диапазон. На самом деле я хочу заполнить его моей текущей формулой, которая создает имена слоев # для каждого из них. Добавил несколько картинок для наглядности. Что касается переменных, если я использую =("E"&E1) для создания "E5" на основе значения в E1, я хочу использовать E5 в качестве ссылки на ячейку, а не строку
Чтобы получить результат, показанный на изображениях, введите =IF(ROW(D1)<=E$1;"Layer " & ROW(D1);"")
в ячейку D3 и заполните до D10, перетащив темную точку в углу. Затем измените значение в E1, чтобы увидеть разницу.
$
означает, что следующие 1
в ссылке не изменяются, когда формула копируется или заполняется в другом месте. В противном случае ссылки формулы будут скорректированы относительно нового местоположения.
If I use =("E"&E1) to create "E5" based on the value in E1, I want to use the E5 as a cell reference and not a string.
Это то, что делает НЕПРЯМОЙ.
=SUM(SUM(A1:A5):A6)
Вместо этого должно быть =SUM(SUM(A1:A5);A6)
. Первый представляет собой диапазон ячеек, тогда как второй дает дополнительную ячейку для включения. Вы также можете сделать, например, =SUM(SUM(A1:A5);A6:A10)
.
Я действительно не понимаю, почему вы ожидаете, что :
будет работать там, где ;
. Это определило бы диапазон, который начинается со строки результата SUM
и заканчивается ячейкой, я полагаю? Не имеет смысла для меня. Возможно, вы имели в виду что-то вроде =SUM(INDIRECT("A"&SUM(A1:A5));A6)
. Тем не менее, я не понимаю, почему кто-то хочет это сделать.
Табличные формулы отличаются от языков программирования. Может потребоваться некоторое время, чтобы научиться эффективно их использовать. LibreOffice также имеет обширную поддержку макросов, если вам нужен реальный язык программирования, хотя в большинстве случаев, вероятно, есть лучший способ решить проблему, не прибегая к макросам.
Большое спасибо, это работает именно так, как я хочу. Я пытался использовать INDIRECT, но не смог заставить его работать так, как хотел. Я думаю, что просто понятия не имею о правильном синтаксисе формул Calc. Я сделал макросы с помощью базовых сценариев с некоторой степенью успеха, но то, что я пытаюсь сделать здесь, кажется достаточно простым, чтобы не бороться с этим, если это возможно. Во всяком случае, это моя логика. Документации всегда очень не хватало, на мой взгляд
Я пытался, но не смог понять желаемого результата. Что я придумал, так это ввести
=IF(ROW()<=E$5;"Layer " & E$4)
в ячейку A3, а затем заполнить до A8, что создаст «Слой 25» в ячейках с A3 по A5. Но, согласно вопросу, вместо этого следует сказать «Слой 1», поэтому я не понимаю, о чем вы спрашиваете и почему упоминается E4. Существует также НЕПРЯМОЙ, который может быть тем, что вы имеете в виду под переменными.