Excel 2007: как ссылаться на непоследовательный именованный диапазон? - PullRequest
1 голос
/ 27 мая 2011

У меня 5 ячеек в первом ряду: A1 - 1, B1 - 2, C1 - 3, D1 - 4 и E1 - 5. Теперь я хочу выбрать нечетные числа и назвать их «list_a_odd», поэтому я держу CONTROL и выберите A1, C1 и E1, введите «list_a_odd» в поле имени и нажмите ENTER. Теперь в A2, если я наберу "= SUM (list_a_odd)", это даст мне результат 9, который является правильным и ожидаемым. Но если я наберу "= list_a_odd", это выдаст мне ошибку "#VALUE!".

Однако, если я выберу все 5 ячеек (от А1 до Е1) и назову их «list_a», а в A2 добавлю «= list_a», в ячейке будет показано «1», и я могу перетащить А2 E2, чтобы показать все 5 номеров в list_a. Так что это похоже на проблему только при обращении к непоследовательным именованным диапазонам в ячейке. Это ошибка Excel?

1 Ответ

4 голосов
/ 28 мая 2011

Поведение list_a, которое вы описываете, является примером неявного пересечения диапазона. list_a относится к непрерывному диапазону A1:E1, формуле, рассчитывающей одну ячейку, при размещении в диапазоне столбцов от A до E с использованием этой ссылки на диапазон вычисляется точка пересечения и возвращается эта ячейка.
Таким образом, формула в C2 =A1:E1 или =list_a_odd фактически возвращает refence до C1.

Как вы говорите, list_a_odd - это прерывистый мультиобластной диапазон . И неявное пересечение не относится к разрывным диапазонам.
Некоторые (но не все) функции работают с прерывистыми диапазонами, включая SUM, поэтому =SUM(list_a_odd) работает, как и ожидалось, так же, как =SUM(A1,C1,E1) работает тоже.

EDIT

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

В UDF используйте свойство Range.Areas для циклического прохождения каждого из поддиапазонов в прерывистом диапазоне (помните, что каждый элемент в Areas может быть отдельной ячейкой или отдельным диапазоном). Создайте массив значений, чтобы вернуться к формуле массива на листе.

Точные детали будут зависеть от ваших конкретных требований и от того, как обобщенно вы хотите сделать UDF. Пойдите, и напишите снова, если вам нужна дополнительная помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...