Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Создание базы клиентов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Мир MS Excel » Работа и общение » Работа / Фриланс » Создание базы клиентов (Необходимо написать макрос для создания базы клиентов)
Создание базы клиентов
frederik132 Дата: Суббота, 16.09.2017, 18:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Цель: сделать ПОПОЛНЯЕМУЮ ПЕРИОДИЧЕСКИ базу данных клиентов. Работать нужно с табличами из БД, которые phpMyAdmin выгружает в любом формате. ВАЖНО: должна быть возможность в дальнейшем пользоваться макросом для пополнения базы. Всего 4 таблицы. Из них нужно сделать один конечный файл. Образцы исходных таблиц и конечного файла во вложении.
Попробую теперь расписать по каждому полю в отдельности. Порядок полей произвольный, как Вам удобней. В нужном порядке потом сам со временем расставлю. Важен набор. Сначала работаем с таблицей №1 users. ВАЖНО: юзеров c username phone и edadrugu игнорим. С ними отдельная работа в отдельном файле.
1) ячейку id заполняем из поля id
2) ячейку username заполняем из поля username
3) ячейку e-mail заполняем из поля e-mail
4) ячейку registerDate заполняем из поля registerDate

Больше из этой таблицы взять нечего. Переходим к таблице №2 user_info.
5) ячейку name заполняем из поля first_name
6) ячейку ФИО заполняем из полей last name+first name+middle name (именно в таком порядке)
7) ячейку city заполняем из поля City
8) ячейку phone number заполняем из поля phone_1 (убираем символы "тире" и "пробел", чтобы получилось слитно 11 цифр)

С этой таблицей все. Переходим к таблице №3 orders.
9) ячейку order's number заполняем из order_number
10) ячейку order's id заполняем из virtuemart_order_id (оказалось, что он тоже нужен, дальше поймете почему)
11) ячейку date of order заполняем из то ли cdate, то ли mdate. Не знаю, что означает каждое из них. Нужна именно дата заказа, а не дата последнего изменения. По идее, дата заказа имеет меньшее значение из двух.
12) ячейку сustomer_note заполняем без изменений из сustomer_note. Делаем следующую проверку: если содержится "Т:" и/или "Т1:" и/или "Т2:" и/или "Т3:" и/или "Т4:" и/или "Т5:", то все между этим и "!!" помещаем в ячейку Products.

13) Чтобы заполнить ячейку Products нужна отдельная таблица! Называется order_items. Здесь хранятся данные о том, какой товар в каждом заказе.
Тут из поля order_item_name берем содержимое и помещаем его в ячейку Products. Соответствующий заказ находим по полю virtuemart_order_id и ищем совпадение в ячейке order's id. Здесь каждое наименование товара содержится в отдельной строке. То есть, если наименований несколько, идет несколько строк. Просто у них совпадает virtuemart_order_id. Не знаю, как это лучше реализовать, чтобы удобно было. Наверное, нужно по virtuemart_order_id искать совпадение с order's id. Далее проверять ячейку Products. Если она пустая, записываем в нее данные. Если она уже заполнена (такое будет в случае нескольких товаров), тогда копируем всю строку, вставляем ее под этой проверяемой строкой и заменяем содержимое ячейки Products. В идеале, конечно, если это просто в реализации, сделать по-другому. Товаров может быть 4,5 и больше. При таком подходе товары в заказе перемешаются. Поэтому, если ячейка Products непустая, надо найти в столбце order's id тот номер, который отличается от текущего, и уже вставлять скопированную ячейку над этой строкой. Ну, или как-то по-другому. Вам виднее. Но это непринципиально. Мне главное, чтобы по фильтру можно было фильтровать различные товарные группы. Для этого они обязательно должны быть в раздельных строках. А их порядок в заказе - это уже вопрос комфорта при работе с базой и заказов в админке при необходимости.

С юзерами phone и edadrugu отдельная работа. Первые две таблицы не нужны, там ничего интересного по ним нет. Работа с таблицей №3 и 4. С прошлого года информацию начали кодировать, тут все просто (подробности кодировки при переписке). А вот до этого - не кодировали. Поэтому некоторые особенности. Нужно проверять весь customer_note и по определенным правилам вычленять нужную информацию (без учета регистра):
- если есть слово Аксай, Батайск, Новочеркасск, Азов, Таганрог, Шахты, записываем в City. Если ни одного из этих слов нет, в City пишем тогда Ростов-на-Дону.
-телефон: если есть без знаков "пробел", "-", "(", ")" 11 или 10 ("8" или "+7" могли не писать) записываем в поле Phone. Или же 7цифр (городской номер могли без кода писать).
-e-mail думаю просто. знак @ и от него в обе стороны до пробела это почта. В ячейку e-mail.
Думаю, больше ничего не получится вычленить. Если знаете способ, как можно вытащить имя - здорово.
К сообщению приложен файл: clj2f_users.csv (0.8 Kb) · clj2f_virtuemar.csv (2.4 Kb)


Сообщение отредактировал frederik132 - Суббота, 16.09.2017, 18:04
 
Ответить
СообщениеДобрый день!
Цель: сделать ПОПОЛНЯЕМУЮ ПЕРИОДИЧЕСКИ базу данных клиентов. Работать нужно с табличами из БД, которые phpMyAdmin выгружает в любом формате. ВАЖНО: должна быть возможность в дальнейшем пользоваться макросом для пополнения базы. Всего 4 таблицы. Из них нужно сделать один конечный файл. Образцы исходных таблиц и конечного файла во вложении.
Попробую теперь расписать по каждому полю в отдельности. Порядок полей произвольный, как Вам удобней. В нужном порядке потом сам со временем расставлю. Важен набор. Сначала работаем с таблицей №1 users. ВАЖНО: юзеров c username phone и edadrugu игнорим. С ними отдельная работа в отдельном файле.
1) ячейку id заполняем из поля id
2) ячейку username заполняем из поля username
3) ячейку e-mail заполняем из поля e-mail
4) ячейку registerDate заполняем из поля registerDate

Больше из этой таблицы взять нечего. Переходим к таблице №2 user_info.
5) ячейку name заполняем из поля first_name
6) ячейку ФИО заполняем из полей last name+first name+middle name (именно в таком порядке)
7) ячейку city заполняем из поля City
8) ячейку phone number заполняем из поля phone_1 (убираем символы "тире" и "пробел", чтобы получилось слитно 11 цифр)

С этой таблицей все. Переходим к таблице №3 orders.
9) ячейку order's number заполняем из order_number
10) ячейку order's id заполняем из virtuemart_order_id (оказалось, что он тоже нужен, дальше поймете почему)
11) ячейку date of order заполняем из то ли cdate, то ли mdate. Не знаю, что означает каждое из них. Нужна именно дата заказа, а не дата последнего изменения. По идее, дата заказа имеет меньшее значение из двух.
12) ячейку сustomer_note заполняем без изменений из сustomer_note. Делаем следующую проверку: если содержится "Т:" и/или "Т1:" и/или "Т2:" и/или "Т3:" и/или "Т4:" и/или "Т5:", то все между этим и "!!" помещаем в ячейку Products.

13) Чтобы заполнить ячейку Products нужна отдельная таблица! Называется order_items. Здесь хранятся данные о том, какой товар в каждом заказе.
Тут из поля order_item_name берем содержимое и помещаем его в ячейку Products. Соответствующий заказ находим по полю virtuemart_order_id и ищем совпадение в ячейке order's id. Здесь каждое наименование товара содержится в отдельной строке. То есть, если наименований несколько, идет несколько строк. Просто у них совпадает virtuemart_order_id. Не знаю, как это лучше реализовать, чтобы удобно было. Наверное, нужно по virtuemart_order_id искать совпадение с order's id. Далее проверять ячейку Products. Если она пустая, записываем в нее данные. Если она уже заполнена (такое будет в случае нескольких товаров), тогда копируем всю строку, вставляем ее под этой проверяемой строкой и заменяем содержимое ячейки Products. В идеале, конечно, если это просто в реализации, сделать по-другому. Товаров может быть 4,5 и больше. При таком подходе товары в заказе перемешаются. Поэтому, если ячейка Products непустая, надо найти в столбце order's id тот номер, который отличается от текущего, и уже вставлять скопированную ячейку над этой строкой. Ну, или как-то по-другому. Вам виднее. Но это непринципиально. Мне главное, чтобы по фильтру можно было фильтровать различные товарные группы. Для этого они обязательно должны быть в раздельных строках. А их порядок в заказе - это уже вопрос комфорта при работе с базой и заказов в админке при необходимости.

С юзерами phone и edadrugu отдельная работа. Первые две таблицы не нужны, там ничего интересного по ним нет. Работа с таблицей №3 и 4. С прошлого года информацию начали кодировать, тут все просто (подробности кодировки при переписке). А вот до этого - не кодировали. Поэтому некоторые особенности. Нужно проверять весь customer_note и по определенным правилам вычленять нужную информацию (без учета регистра):
- если есть слово Аксай, Батайск, Новочеркасск, Азов, Таганрог, Шахты, записываем в City. Если ни одного из этих слов нет, в City пишем тогда Ростов-на-Дону.
-телефон: если есть без знаков "пробел", "-", "(", ")" 11 или 10 ("8" или "+7" могли не писать) записываем в поле Phone. Или же 7цифр (городской номер могли без кода писать).
-e-mail думаю просто. знак @ и от него в обе стороны до пробела это почта. В ячейку e-mail.
Думаю, больше ничего не получится вычленить. Если знаете способ, как можно вытащить имя - здорово.

Автор - frederik132
Дата добавления - 16.09.2017 в 18:04
frederik132 Дата: Суббота, 16.09.2017, 18:06 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добавляю оставшиеся файлы.
К сообщению приложен файл: 8464310.csv (2.2 Kb) · clj2f_vm_order_.csv (1.5 Kb)
 
Ответить
СообщениеДобавляю оставшиеся файлы.

Автор - frederik132
Дата добавления - 16.09.2017 в 18:06
frederik132 Дата: Суббота, 16.09.2017, 18:07 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И еще один файл. Пример конечного результата.
К сообщению приложен файл: res.xls (33.5 Kb)
 
Ответить
СообщениеИ еще один файл. Пример конечного результата.

Автор - frederik132
Дата добавления - 16.09.2017 в 18:07
nilem Дата: Суббота, 16.09.2017, 19:11 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Написал в личку


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеНаписал в личку

Автор - nilem
Дата добавления - 16.09.2017 в 19:11
frederik132 Дата: Воскресенье, 17.09.2017, 12:09 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Прилагаю возможные форматы экспорта.
К сообщению приложен файл: 0790730.jpg (12.8 Kb)
 
Ответить
СообщениеПрилагаю возможные форматы экспорта.

Автор - frederik132
Дата добавления - 17.09.2017 в 12:09
nilem Дата: Воскресенье, 17.09.2017, 12:35 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
MediaWiki Table - даже вот представления не имею (а еще pdf)
Сорри, не берусь. Пас.


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеMediaWiki Table - даже вот представления не имею (а еще pdf)
Сорри, не берусь. Пас.

Автор - nilem
Дата добавления - 17.09.2017 в 12:35
frederik132 Дата: Воскресенье, 17.09.2017, 16:57 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, Вы не так поняли. Это возможные доступные форматы. Я могу экспорт сделать в любой, один, какой нужен. Кому в каком удобней работать. А вы подумали, что во всех этих форматах?
 
Ответить
Сообщениеnilem, Вы не так поняли. Это возможные доступные форматы. Я могу экспорт сделать в любой, один, какой нужен. Кому в каком удобней работать. А вы подумали, что во всех этих форматах?

Автор - frederik132
Дата добавления - 17.09.2017 в 16:57
frederik132 Дата: Воскресенье, 17.09.2017, 18:15 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, не взял заказ. Заказ свободен.
 
Ответить
Сообщениеnilem, не взял заказ. Заказ свободен.

Автор - frederik132
Дата добавления - 17.09.2017 в 18:15
InExSu Дата: Понедельник, 18.09.2017, 23:20 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Написал в личку


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеНаписал в личку

Автор - InExSu
Дата добавления - 18.09.2017 в 23:20
frederik132 Дата: Среда, 20.09.2017, 10:57 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Заказ отдал в работу.
 
Ответить
СообщениеЗаказ отдал в работу.

Автор - frederik132
Дата добавления - 20.09.2017 в 10:57
InExSu Дата: Среда, 20.09.2017, 11:41 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Заказ отдал в работу

я не при делах.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
Сообщение
Заказ отдал в работу

я не при делах.

Автор - InExSu
Дата добавления - 20.09.2017 в 11:41
_Boroda_ Дата: Среда, 20.09.2017, 14:25 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
frederik132, а с кем Вы сотрудничаете, если не секрет?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеfrederik132, а с кем Вы сотрудничаете, если не секрет?

Автор - _Boroda_
Дата добавления - 20.09.2017 в 14:25
Мир MS Excel » Работа и общение » Работа / Фриланс » Создание базы клиентов (Необходимо написать макрос для создания базы клиентов)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!