powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Слияние таблиц, аналог Left Join из SQL
7 сообщений из 7, страница 1 из 1
Слияние таблиц, аналог Left Join из SQL
    #38316987
Mih-MIh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть интересная задача, которую не удалось решить своими силами.

Есть несколько таблиц:
1. Прайс лист 1 (содержит поля Формат магазина; товар)
2. Прайс лист 2 и так делее
3. Магазины (содержит поля Магазин; Формат магазина) Каждый магазин встречается 1 раз.

Необходимо сделать таблицу, где к каждому магазину добавлены все товары, которые в нем продаются.
Особенность в том, что в таблдице "Магазины" каждый магазин встречается 1 раз, а в таблицах "Прайс лист" есть несколько товаров для каждого формата магазина. И на каждый тип пмагазина (Название сети) есть свой правйс лист.

Что пробовал сделать:
1.Составить OLAP куб. Не вышло, тк не придумал уникального индекса, по которому можно проводить сравнение.
2. Сводная таблица. Для неё должен быть массив данных, который собственно и требуется сделать.
3. Функция "=ВПР()". Не подходит так как она только заполняет значения, но не умеет создавать новые строки и добавлять туда новые значения.

Прикрепляю файл для примера.
...
Рейтинг: 0 / 0
Слияние таблиц, аналог Left Join из SQL
    #38317056
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если SQL-запросом?
...
Рейтинг: 0 / 0
Слияние таблиц, аналог Left Join из SQL
    #38317059
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы умеете оперировать SQL-инструкциями - то почему бы просто не воспользоваться JetSQL для получения нужной выборки? ADODB вполне умеет обращаться к источнику данных - файлу Excel...
...
Рейтинг: 0 / 0
Слияние таблиц, аналог Left Join из SQL
    #38317077
Mih-MIh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что этих данных нет в БД. Данные есть толтько в фаилах Excel.

Я бы с радостью, да в компании принято в Excel е все делать))
...
Рейтинг: 0 / 0
Слияние таблиц, аналог Left Join из SQL
    #38317085
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот простой пример для затравки:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim cn As Object, rs As Object
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ThisWorkbook.FullName + ";Extended Properties='Excel 8.0'"
rs.Open "select NUM, Sum(SUM) from [Лист2$] group by NUM order by Sum(SUM) DESC", cn, 3
Cells(1, 5).CopyFromRecordset rs
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
...
Рейтинг: 0 / 0
Слияние таблиц, аналог Left Join из SQL
    #38317137
Mih-MIh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Огромное спасибо.
Я в Accesse создал БД. там установил связь с нужными файлами и написал запрос
--
SELECT *
FROM Адреса LEFT JOIN Билла ON Адреса.Сеть=Билла.сеть;
--
Получилось.

НО! Можно ли подобное делать средствами Excel?
...
Рейтинг: 0 / 0
Слияние таблиц, аналог Left Join из SQL
    #38317156
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так можно же
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Слияние таблиц, аналог Left Join из SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]