Как мне сослаться на ячейку в именованном диапазоне Excel?
-
19-09-2019 - |
Вопрос
Например.Я назвал Возраст от 10 до A20, теперь как мне получить возраст [5], который совпадает с A14.
Я могу написать "= A14", но мне хотелось бы написать "= Возраст 5 долларов" или что-то в этом роде.
Решение
Вы можете использовать Excel Index
функция:
=INDEX(Age, 5)
Другие советы
"Знаете ли вы, есть ли способ заставить это работать с относительными выборками, чтобы формулу можно было "перетащить" вниз / применить к нескольким ячейкам в одном столбце?"
Чтобы сделать такой выбор относительным, просто используйте формулу СТРОКИ для номера строки в формуле ИНДЕКСА и формулу столбца для номера столбца в формуле ИНДЕКСА.Чтобы сделать это более понятным, приведем пример:
=INDEX(named_range,ROW(A1),COLUMN(A1))
Предполагая, что именованный диапазон начинается с A1, эта формула просто индексирует этот диапазон по номеру строки и столбца ссылочной ячейки, и поскольку эта ссылка является относительной, она изменяется при перетаскивании ячейки вниз или в сторону, что позволяет легко создать целый массив ячеек.
Есть пара разных способов, которыми я бы это сделал:
1) Имитировать использование таблиц Excel с именованным диапазоном
В вашем примере вы назвали диапазон A10:A20
"Возраст".В зависимости от того, как вы хотели ссылаться на ячейку в этом диапазоне, вы могли бы либо (как написал @Alex P) использовать =INDEX(Age, 5)
или, если вы хотите сослаться на ячейку в диапазоне "Age", которая находится в той же строке, что и ваша формула, просто используйте:
=INDEX(Age, ROW()-ROW(Age)+1)
Это имитирует функции относительных ссылок, встроенные в таблицы Excel, но является альтернативой, если вы не хотите использовать таблицу.
Если именованный диапазон представляет собой целый столбец, формула упрощается следующим образом:
=INDEX(Age, ROW())
2) Используйте таблицу Excel
В качестве альтернативы, если вы настроите это как таблицу Excel и введете "Возраст" в качестве заголовка столбца "Возраст", тогда ваша формула в столбцах справа от столбца "Возраст" может использовать формулу, подобную этой:
=[@[Age]]
Я был готов использовать что-то подобное на листе, где все строки идентичны и обычно ссылаются на другие ячейки в той же строке, но по мере усложнения формул ссылки на другие столбцы становятся трудночитаемыми.Я попробовал трюк, приведенный в других ответах, например, со столбцом А, названным как "Продажи", я могу ссылаться на него как INDEX(Sales;row())
но на мой вкус, это было слишком длинно.
Однако в данном конкретном случае я обнаружил, что с помощью Sales
alone работает так же хорошо - Excel (здесь 2010) просто автоматически получает соответствующую строку.
Похоже, это работает и с другими диапазонами;например, допустим, у меня есть значения в A2:A11
который я называю Sales
, я могу просто использовать =Sales*0.21
в B2:11
и он будет использовать одно и то же значение строки, выдавая десять разных результатов.
--- редактировать:
Я также нашел хороший трюк на эта страница:именованные диапазоны также могут быть относительными.Возвращаясь к вашему первоначальному вопросу, если ваше значение "Возраст" находится в столбце A и предполагается, что вы используете это значение в формулах в той же строке, вы можете определить Возраст как $ A2 вместо $ A $ 2, так что при использовании, например, в B5 или C5 оно фактически будет относиться к $ A5.(Диспетчер имен всегда показывает ссылку относительно выбранной в данный момент ячейки)
Добавьте столбец слева, чтобы от B10 до B20 был ваш возраст в именованном диапазоне.Установите A10 равным A20, чтобы A10 = 1, A11= 2,...A20 = 11 и присвоите диапазону от A10 до A20 имя, например AgeIndex.Затем 5-й элемент может быть найден с помощью формулы массива " = sum( Age * (1 * (AgeIndex = 5) ) ".Поскольку это формула массива, вам нужно нажать shift + ctrl + return, чтобы заставить ее работать, а не просто возвращать.