Может кто-нибудь объяснить на английском языке, что эта формула делает? Я смотрю на чужую работу и понятия не имею.Что делает эта формула Excel?
=SUM(OFFSET(INDIRECT((ADDRESS(ROW(),21)),0,0,1)CurrentActualPeriod))
Может кто-нибудь объяснить на английском языке, что эта формула делает? Я смотрю на чужую работу и понятия не имею.Что делает эта формула Excel?
=SUM(OFFSET(INDIRECT((ADDRESS(ROW(),21)),0,0,1)CurrentActualPeriod))
Извините, без данных Я не лучше, чем вы. Я бы предложил разбить каждую из функций в свою собственную ячейку, чтобы вы могли видеть, что они возвращают. Это позволит вам сделать себе стек вызовов, чтобы вы могли видеть, что происходит.
Просто взглянув на это, я уверен, что его можно было бы существенно упростить. В годы моей разработки Excel я не помню, чтобы когда-либо приходилось обращаться к функции Address. Смещение довольно мощное и запутанное при правильном использовании. :-)
Я просто прочитал файл справки 'OFFSET'. Кажется, это довольно запутанно! и я могу видеть силу в ней ... – masher
Соглашаясь с jeffreymb, вы также можете использовать функцию Evaluate Formula в Excel для поочередного выполнения вложенных функций по одному (если у вас есть Excel 2007). Вот документация и скриншот того, как это работает:
, если вы не можете этого сделать, затем поместите каждый уровень гнездования в свою собственную ячейку и верните назад, когда вы создадите свои гнезда ... – masher
Я использую ADDRESS
и INDIRECT
функции довольно часто.
Действительно ли эта формула работает? Если да, то какую версию Excel вы используете? Я не могу заставить его работать в Excel 2003.
Для меня функция ADDRESS
имеет слишком мало аргументов, а те, которые ошибаются ...; это должно быть (что-то типа) ADDRESS(ROW(),21,1,1,1)
CurrentActualPeriod
, вероятно, относится к именованному диапазону и, вероятно, должен иметь перед ним запятую.
Я не могу сделать гораздо больше, чем это атм ..
Прикомандированный, я здесь с excel 2007 и не может заставить его работать. – Jasper
Если предположить, что эта формула появляется в Д4, то:
= SUM(
OFFSET(
INDIRECT(
(
ADDRESS(
ROW(),21
)
),0,0,1
)
CurrentActualPeriod
)
)
ROW() = 4
ADDRESS(4,21) = $U$4
INDIRECT($U$4) = take contents of $U$4, use as address, and get that cell's value
OFFSET(..., 0, 0, 1) = ?
Остальные, кажется, ошибка синтаксиса, если нет недостающий запятая перед CurrentActualPeriod
.
Двойное косвенное отношение, безусловно, сбивает с толку. Создайте адрес, получите адрес ячейки оттуда, используйте его для ДРУГОГО уровня косвенности ... Ouch
Я делал хуже, когда мне нужен чрезвычайно динамический именованный диапазон. Я бы двигался горизонтально, вертикально и менял его высоту! – Icode4food
Вы уверены, что круглые скобки правильные, как указано выше? Вызывает ли формула ошибку? –
Вы не прокомментировали запятую перед 'CurrentActualPeriod'? – Icode4food