Есть Excel-файл, в котором в двух столбцах хранятся некие текстовые данные (их количество не является фиксированным, но оно всегда одинаково в обоих столбцах, то есть их может быть 5 как на скриншоте ниже, 10, 50 и так далее, но в обоих столбцах этих данных всегда будет по 5, 10, 50 и т.д.).
Подскажите, пожалуйста, можно ли как-нибудь с помощью формулы вывести значения из этих двух столбцов в одном, при этом расположив данные друг под другом (в идеале дополнительно убрав дубликаты и отсортировав данные по алфавиту)? Прилагаю скриншот как хотелось бы это видеть:
Заранее спасибо за любые советы, а то уже все мозги сломал. [moder]Зачем скриншот? Файл Excel приложите[/moder] *upd. Приложил.
Здравствуйте!
Есть Excel-файл, в котором в двух столбцах хранятся некие текстовые данные (их количество не является фиксированным, но оно всегда одинаково в обоих столбцах, то есть их может быть 5 как на скриншоте ниже, 10, 50 и так далее, но в обоих столбцах этих данных всегда будет по 5, 10, 50 и т.д.).
Подскажите, пожалуйста, можно ли как-нибудь с помощью формулы вывести значения из этих двух столбцов в одном, при этом расположив данные друг под другом (в идеале дополнительно убрав дубликаты и отсортировав данные по алфавиту)? Прилагаю скриншот как хотелось бы это видеть:
Заранее спасибо за любые советы, а то уже все мозги сломал. [moder]Зачем скриншот? Файл Excel приложите[/moder] *upd. Приложил.Samaretz
Мой вариант с SQL для исполнения в Окне отладки (файл предварительно надо сохранить на диске): [vba]
Код
Set rst = CreateObject("ADODB.Recordset"): _ rst.Open "SELECT F2 FROM [Sheet1$C8:D80] UNION SELECT F1 FROM [Sheet1$C8:D80]", _ "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & ThisWorkbook.FullName & _ ";Extended Properties='Excel 12.0;HDR=No'": _ [Sheet1!H20].CopyFromRecordset rst
[/vba]Просто скопировать в Окно отладки и нажать Enter. В результате на листе Sheet1, начиная с H20 - автоматически отсортированный список уникальных значений (заслуга оператора UNION). При желании можно оформить в виде нормального макроса.
Мой вариант с SQL для исполнения в Окне отладки (файл предварительно надо сохранить на диске): [vba]
Код
Set rst = CreateObject("ADODB.Recordset"): _ rst.Open "SELECT F2 FROM [Sheet1$C8:D80] UNION SELECT F1 FROM [Sheet1$C8:D80]", _ "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ & ThisWorkbook.FullName & _ ";Extended Properties='Excel 12.0;HDR=No'": _ [Sheet1!H20].CopyFromRecordset rst
[/vba]Просто скопировать в Окно отладки и нажать Enter. В результате на листе Sheet1, начиная с H20 - автоматически отсортированный список уникальных значений (заслуга оператора UNION). При желании можно оформить в виде нормального макроса.Gustav
А если я несколько столбцов объединил в диспетчере имен в одно имя "Экспорт" Каким образом мне добыть список из этого имени ? В идеале без пропусков между значениями. Попытался примеры применить которые тут используются. Но увенчалось фейлом. В столбце Z5:Z150 [moder]Антон, а если Вы наконец-то Правила форума выучите? Ну не хочу я Вам замечание давать, но, видимо, придется - Вы прям все для этого делаете. Тема закрыта.
Добрый день.
А если я несколько столбцов объединил в диспетчере имен в одно имя "Экспорт" Каким образом мне добыть список из этого имени ? В идеале без пропусков между значениями. Попытался примеры применить которые тут используются. Но увенчалось фейлом. В столбце Z5:Z150 [moder]Антон, а если Вы наконец-то Правила форума выучите? Ну не хочу я Вам замечание давать, но, видимо, придется - Вы прям все для этого делаете. Тема закрыта.koyaanisqatsi
Сообщение отредактировал _Boroda_ - Четверг, 02.07.2015, 16:45