Верстка таблиц

 

Откроем файл с примером:     Файл

 

В ячейках А1:В24 находится база данных, состоящая из повторяющихся модулей. Задача – распределить эти значения в виде развёрнутой таблицы D1:G7

В принципе, значения можно перетаскать, но есть более деликатное решение.

 

Нам понадобится формула =ДВССЫЛ(АДРЕС(1;1))

Которая состоит из комбинации двух независимых формул:

ДВССЫЛ (определяет адрес ячейки из текстового обозначения) смотри справку

АДРЕС (преобразует адрес ячейки из формата VBA в формат Excel) смотри справку

 

Что значит формат VBA ???  Лист в Excel разбит на именованные ячейки, которые могут обозначаться 3 типами:

  1. в стиле A1
  2. в стиле R1C1
  3. в стиле VBA

 

Например: А1 = R1C1 = Cells(1, 1) всё это обозначение одной ячейки А1

VBA понимает все 3 формата, но чаще всего используется обозначение Cells(1, 1) где:

Cells(номер строки сверху вниз, номер столбца слева на право)

 

Так вот, если мы забубеним в любую ячейку формулу =ДВССЫЛ(АДРЕС(1;1)) , то результатом будет значение ячейки А1. Естественно, меняя значения (1;1) на другие – вы получите ссылку на соответствующие ячейки. Кстати, ДВССЫЛ способна распознавать ссылки как на листы так и на файлы Excel, что может значительно расширить возможности применения.

 

Теперь вернёмся к первоначальной задаче.

Если вы догадались, мы должны в D1:G7 проставить формулы =ДВССЫЛ(АДРЕС(1;1)) и получить искомые значения в нужном виде (развёрстке). Однако мы не хотим вручную прописывать значения в каждую формулу, вдруг их там будет 50 000 ???

 

Тогда рядом I2:L7 мы создаём массив параметров смещения, который укажет формуле, какую строчку из столбика В1:В24 нужно применить.

=ДВССЫЛ(АДРЕС(I2;2)) второй параметр у нас всегда будет равен 2, так как значения выбираются только из 2 по порядку столбика В:В

 

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

 

 

Назад    Начало    Вперёд