как вернуть значения именованных диапазонов с несколькими ячейками

У меня есть несколько именованных диапазонов, некоторые из которых представляют собой одноячейочные NamedRanges, другие многоклеточные.

Когда я использую "=AnyNameofSingleCellNamedRange" в любой ячейке книги, она возвращает свое значение.

Но когда я использую "=AnyNameofMultiCellNamedRange", он возвращает ошибку #VALUE, говоря, что это неправильный тип данных.


person Stupid_Intern    schedule 02.11.2015    source источник
comment
Рассматривайте именованный диапазон с несколькими ячейками как массив ячеек и, следовательно, используйте Ctrl + Shift + Enter при прямом использовании или укажите только многоячеечные аргументы формулы, например. вместо первого он будет идти вторым аргументом ВПР.   -  person jainashish    schedule 12.06.2018


Ответы (3)


Если вы введете =MultiCellNamedRange в ячейку в той же строке, что и диапазон, на который он ссылается, Excel выполняет неявное пересечение и дает вам значение, которое является пересечением именованного диапазона и строки. если пересечения нет, вы получаете #Value.

Если вы введете =MultiCellNamedRange в качестве формулы массива с несколькими ячейками, используя Control-Shift-Enter, Excel не будет выполнять неявное пересечение и вернет массив значений из именованного диапазона с несколькими ячейками.

person Charles Williams    schedule 02.11.2015

Самый простой способ доступа к данным из многоячеечного именованного диапазона — это функция ИНДЕКС. Например:

=INDEX(AnyNameofMultiCellNamedRange,2)

Это дает второе значение именованного диапазона с несколькими ячейками.

=INDEX(AnyNameofMultiCellNamedRange,2, 3)

В двумерном массиве это показывает значение ячейки во 2-й строке и 3-м столбце.

В VBA это еще проще — вы ссылаетесь на него, как на любой другой массив. Например:

x = AnyNameofMultiCellNamedRange (2,3)

Обратите внимание, что без ссылки (x, y) или (x) в скобках после именованного диапазона вы, по сути, говорите «сделайте x = всему массиву».

person Grade 'Eh' Bacon    schedule 02.11.2015

=AnyNameofMultiCellNamedRange фактически возвращает массив значений. В зависимости от физического расположения формулы вы можете увидеть одно из значений или ошибку #VALUE!.

Чтобы просмотреть отдельные значения, вы можете либо ввести его в виде формулы массива в диапазоне одинаковых измерений, либо использовать функцию индекса для просмотра отдельных значений. Он будет работать как требуется в функциях, которые принимают аргументы массива.

person Ron Rosenfeld    schedule 02.11.2015