Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2009, 11:30   #1
PARTOS
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 87
По умолчанию Как сделать БД на основе двух других

Подскажите по базам данных

Есть две базы данных
Первая БД находится на Листе №1, состоит из двух столбцов «Дата1» и «Кол-во плюс»
Дата1 Кол-во плюс
01.01.2009 / 25
02.01.2009 / 30
03.01.2009 / 15
04.01.2009 / 24
05.01.2009 / 43
07.01.2009 / 21
09.01.2009 / 19


Вторая БД находится на Листе №2, состоит из двух столбцов «Дата2» и «Кол-во минус»
Во второй БД дата представлена в формате - 01.01.2009 9:00:00 (дата + время начало смены)
Во второй БД каждая дата может быть представлена два раза (две смены)
Во второй БД может не быть даты, которая есть в первой БД и наоборот
Дата2 / Кол-во минус
01.01.2009 9:00:00 / 7
01.01.2009 21:00:00 / 15
02.01.2009 9:00:00 / 14
04.01.2009 21:00:00 / 18
05.01.2009 9:00:00 / 25
05.01.2009 21:00:00 / 24
06.01.2009 21:00:00 / 29
08.01.2009 9:00:00 / 18
08.01.2009 21:00:00 / 27
09.01.2009 9:00:00 / 22


Необходимо
На Листе №3 сформировать третью БД на основе двух предыдущих

Третья БД должна состоять из четырёх столбцов
Первый столбец «Дата3» - формируется из последовательных уникальных дат, которые встречаются в столбцах «Дата1» и «Дата2»

Второй столбец «Кол-во плюс2» - формируется из данных столбца «Кол-во плюс», если в данную дату была поставка («Дата3» = «Дата1») то «Кол-во плюс2» = «Кол-во плюс», иначе 0.

Третий столбец «Минус 9.00» - формируется из данных двух столбцов: «Дата1» и «Кол-во минус»
Если в столбце «Дата1» присутствует время 9:00:00 то в столбец «Минус 9.00» заносятся данные из столбца «Кол-во минус», иначе в столбец «Минус 9.00» заносится 0.

Четвертый столбец «Минус 21.00» - формируется из данных двух столбцов: «Дата1» и «Кол-во плюс»
Если в столбце «Дата1» присутствует время 21:00:00 то в столбец «Минус 21.00» заносятся данные из столбца «Кол-во плюс», иначе в столбец «Минус 21.00» заносится 0.


Дата3 /Кол-во плюс2 /Минус 9.00/Минус 21.00
01.01.2009 / 25 / 7 / 15
02.01.2009 / 30 / 14 / 0
03.01.2009 / 15 / 0 / 0
04.01.2009 / 24 / 0 / 18
05.01.2009 / 43 / 25 / 24
06.01.2009 / 0 / 0 / 21
07.01.2009 / 21 / 0 / 0
08.01.2009 / 0 / 18/ 27
09.01.2009 / 19 / 22/ 0
PARTOS вне форума Ответить с цитированием
Старый 09.12.2009, 12:59   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Здравствуйте PARTOS
Чтобы быстрее получить решение,я бы на вашем месте,создал образец.Заполнил данными с различными возможными вариантами заполнения
Лично мне создавать и заполнять желания нет,да и время забирает.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.12.2009, 14:38   #3
PARTOS
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 87
По умолчанию

Образец того что меня интересует в приложении, с описанием внутри
Вложения
Тип файла: zip БД.zip (3.9 Кб, 14 просмотров)
PARTOS вне форума Ответить с цитированием
Старый 09.12.2009, 15:13   #4
Sh_Alex
Пользователь
 
Регистрация: 02.02.2009
Сообщений: 59
По умолчанию

Посмотрите прикрепленный файл.
С уважением, Александр.
Вложения
Тип файла: rar БД.rar (4.2 Кб, 18 просмотров)
Sh_Alex вне форума Ответить с цитированием
Старый 09.12.2009, 19:23   #5
PARTOS
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 87
По умолчанию

Всё отлично работает кроме столбца с датами «Дата3»
Я изменил в столбце «Дата1» значение месяца с первого на второй:
Даты в столбце «Дата3» не изменились а поставки «Кол-во плюс2» все обнулились

Более подробно в приложении
Вложения
Тип файла: zip БД1.zip (4.6 Кб, 16 просмотров)
PARTOS вне форума Ответить с цитированием
Старый 09.12.2009, 22:25   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте PARTOS.
Предлагаю посмотреть на вариант решения Вашей задачи с участием библиотеки ADO, применяемой для работы с табличными данными с использованием SQL (структурированный язык запросов). Эта технология редко, но все же применяется при обращении к данным расположенным в электронных таблицах Excel.
Евгений.
Вложения
Тип файла: rar БД_ADO.rar (12.0 Кб, 12 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 10.12.2009, 11:05   #7
PARTOS
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 87
По умолчанию

Попробовал применить вариант решения с применением библиотеки ADO на исторических данных с начала 2001 года по начало 2005 года, результат:

Компьютер долго думал, потом выдал
«Run-time error -2147467259(80004005)
Потеряна связь с Microsoft Excel для просмотра присоединённых листов»

Потом опять долго думал и выдал результат, но…
В результирующей колонке «Дата 3» даты выстроились не по мере возрастания (01.01.2001; 02.01.2001;03.01.2001 и т.д.) а в следующем порядке:
Сначала все ПЕРВЫЕ числа всех месяцев и всех годов встречающихся в исходных базах дат «Дата 1» и «Дата 2» (01.01.2001; 01.02.2001; 01.03.2001……01.12.2004) потом идут все ВТОРЫЕ числа всех месяцев и всех годов встречающихся в исходных базах дат «Дата 1» и «Дата 2» (02.01.2001; 02.02.2001; 02.03.2001……02.12.2004) и т.д.
Вложения
Тип файла: zip БД_ADO 1.zip (38.2 Кб, 15 просмотров)
PARTOS вне форума Ответить с цитированием
Старый 10.12.2009, 22:30   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте PARTOS.
Вы конечно правы я ошибся, без корректировки кода конструкция бесполезна.
Евгений.
Вложения
Тип файла: txt корректировка.txt (2.2 Кб, 136 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 11.12.2009, 07:54   #9
PARTOS
Пользователь
 
Регистрация: 24.10.2009
Сообщений: 87
По умолчанию

Спасибо за подсказки.
Я занялся изучением Excel недавно, поэтому, всё что серьёзнее написания формул с использованием стандартных Функций для меня, ПОКА, тёмный лес. Буду потихоньку разбираться с библиотеками ADO, применяемыми для работы с табличными данными с использованием SQL (структурированный язык запросов).
Спасибо.
PARTOS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в один лист можно собрать данные с других листов Lis000iq Microsoft Office Excel 12 24.08.2015 12:51
Как сделать в таблице (StringGrid) ячейку состоящую из двух ячеек на манер Exel бедный_студент Помощь студентам 3 28.04.2009 01:15
Как сделать чтобы двумерный массив который создается в функции можно было использовать в других функциях Olya90 Помощь студентам 4 20.04.2009 18:39
Из двух dat файлов сделать txt valdem Общие вопросы C/C++ 1 19.02.2009 19:33
Из двух dat файлов сделать txt valdem Помощь студентам 5 19.02.2009 17:21