Как мне сослаться на ячейку в именованном диапазоне Excel?

StackOverflow https://stackoverflow.com/questions/2431381

  •  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.(Диспетчер имен всегда показывает ссылку относительно выбранной в данный момент ячейки)

erlative named range

Добавьте столбец слева, чтобы от B10 до B20 был ваш возраст в именованном диапазоне.Установите A10 равным A20, чтобы A10 = 1, A11= 2,...A20 = 11 и присвоите диапазону от A10 до A20 имя, например AgeIndex.Затем 5-й элемент может быть найден с помощью формулы массива " = sum( Age * (1 * (AgeIndex = 5) ) ".Поскольку это формула массива, вам нужно нажать shift + ctrl + return, чтобы заставить ее работать, а не просто возвращать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top