Поведение 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. Пойдите, и напишите снова, если вам нужна дополнительная помощь