Форум по VBA, Excel и Word

VBA, Excel => Работа в программе "Excel" => Тема начата: Vpslow от 19 сентября 2019, 14:53

Название: Excel Формулы: Как найти и подставить данные, если есть объединённые ячейки?
Отправлено: Vpslow от 19 сентября 2019, 14:53
Требуется формула.
Есть два листа, имеющих одинаковую структуру.
Нужно с помощью формулы скопировать данные из одного листа на другой.
Сложность заключается в том, что есть объединённые ячейки и в одной объединённой ячейке данные записаны только в первую ячейку, а остальные пустые.

Есть объединенная ячейка: H20:H23.
Справа от неё находятся 4 значения: L20, L21, L22, L23.

Нужно скопировать данные из столбца U, если на двух листах одинаковая ячейка в столбце H и одинаковая ячейка в столбце L.

В столбце H нет пустых ячеек, поэтому не будет путаницы между пустыми ячейками объединённых ячеек и просто пустыми ячейками.
Название: Re: Excel Формулы: Как найти и подставить данные, если есть объединённые ячейки?
Отправлено: Администратор от 19 сентября 2019, 18:40
Я сложные формулы не делаю, поэтому могу предложить только способ с использованием допстолбцов.

Лист-результат (куда надо вставить данные):
Формула для допстолбца:
=ЕСЛИ(H20="";M19;H20)

Лист-источник (откуда извлекаются данные):
Формула для допстолбца 1 (вставьте в столбец M, т.к. формула ниже работает со столбцом M):
=ЕСЛИ(H20="";M19;H20)

Формула для допстолбца 2 (вставьте в столбец N, т.к. формула ниже ищет в столбце N):
=L20&СИМВОЛ(31)&M20

И формула для листа-результата, которая извлекает данные:
=ИНДЕКС(Лист2!U:U;ПОИСКПОЗ(L20&СИМВОЛ(31)&M20;Лист2!N:N;0);1)


Пояснение к формулам

СИМВОЛ(31) - это спецсимвол, который означает "разделитель".
Этот символ редкий, малая вероятность, что его кто-то будет использовать.
Поэтому с помощью этого символа можно соединить два фрагмента в один, чтобы потом искать в одном столбце, а не в нескольких.
Название: Re: Excel Формулы: Как найти и подставить данные, если есть объединённые ячейки?
Отправлено: Vpslow от 20 сентября 2019, 16:07
Спасибо, помогло.