powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вывод на отдельный лист списка клиентов без повторений
9 сообщений из 9, страница 1 из 1
Вывод на отдельный лист списка клиентов без повторений
    #38634180
Djek_Mexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Много Уважаемые форумчане!
Помогите, пожалуйста разобраться в следующей интересной задаче!
На листе имеется список клиентов с привязкой к определенной компании, датой коммуникации, временем начала и окончания определенной коммуникации.
Задача стоит следующая:
1) Необходимо на новый лист постоянно выводить список ФИО с привязкой к компании, причем данный список постоянно дополняется. Повторения не допускаются.
2) На тот же отдельный лист выводить дату и время окончания последней коммуникации (столбец "Когда последний раз коммуницировали?")
3) На тот же отдельный лист выводить сколько дней чч:мм:сс прошло с момента последней коммуникации (столбец "Сколько времени прошло с даты последней коммуникации?")
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38634235
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38634270
Djek_Mexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Спасибо большое! Попробую разобраться!
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38634374
sastashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djek_Mexx,

Попробуй реализовать примерно в таком виде еще )
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38634395
Djek_Mexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sastashkin,

Сводная таблица конечно как результат ничего, но как она будет высчитывать без добавления новых колонок в таблицу значения по 2 и 3 пункту задания?
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38634484
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38634597
Djek_Mexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Спасибо огромное!!! :)
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38635258
sastashkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djek_Mexx,

Ну второй пункт реализован без дополнительных колонок - просто max по дате коммуникации.

А третий пункт - тут конечно придется добавить колонку, согласен.
...
Рейтинг: 0 / 0
Вывод на отдельный лист списка клиентов без повторений
    #38643458
Djek_Mexx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, помогите,пожалуйста, доработать макрос!
Необходимо сделать следующее:
1. Имея базу данных на отдельный лист выводить не повторяющийся список клиентов с привязкой их к компании,к категории коммуникации, когда последний раз коммуницировали и сколько времени прошло на сегодняшний день с момента последнего контакта с каждым партнером
2. Причем категория коммуникации должна включать только выборочные категории из текущего списка, а именно, звонки, переписку, P3chat, обучение и выезды
3. Далее в получившемся листе коммуникации мне нужно вручную присвоить каждому уникальному клиенту его категорию (определяет как часто коммуницировать с клиентом, в зависимости от его важности)
4. Определить согласно столбцу, где выводится когда последний раз коммуницировали, номер недели и год когда нужно следующий раз с ними коммуницировать (это я знаю формулами как сделать), а макросом нет....
5. С каждым уникальным клиентом вывести среднее кол-во коммуникаций за последний год относительно сегодняшней даты.

Сейчас у меня первые 4 пункта работают, согласно массиву, который подсказал "The_Prist". Но в базе сейчас 7200 строк, и каждый день они добавляются, что при сохранении Excel грузит его на минут 5-10.
Поэтому я ищу вариант, как кроме массива на отдельном листе с помощью макроса выводить все что мне нужно.
Исходный макрос который сейчас имеется привожу ниже, также он есть в прикрепленном файле.

Код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Public Function AdoInExcel()

Set objConnection = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
objConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & _
"Extended Properties=""Excel 12.0;HDR=YES"";"
sqlStr1 = "SELECT a1.[Контактное лицо, ФИО] AS ФИО, a1.Партнёр, a1.[Max-Дата] AS Дата, DateDiff('d',[Max-дата],Date()) AS Сколько"
sqlStr1 = sqlStr1 & " FROM (SELECT a2.[Контактное лицо, ФИО], a2.Партнёр, Max(a2.Дата) AS [Max-Дата]"
sqlStr1 = sqlStr1 & " FROM [База_Сервис$] as a2"
sqlStr1 = sqlStr1 & " GROUP BY [Контактное лицо, ФИО] & [Партнёр], a2.[Контактное лицо, ФИО], a2.Партнёр"
sqlStr1 = sqlStr1 & " HAVING ((([Контактное лицо, ФИО] & [Партнёр]) Is Not Null)))  AS a1"
rs.Open sqlStr1, objConnection, 3, 3
Sheets("Коммуникации").Select
Cells.Select
Application.CutCopyMode = False
Selection.ClearContents
For i = 5 To 12
Selection.Borders(i).LineStyle = -4142
Next i
Cells(1, 1) = "ФИО"
Cells(1, 2) = "Название компании"
Cells(1, 3) = "Когда последний раз коммуницировали?"
Cells(1, 4) = "Сколько времени прошло с даты последней коммуникации?"
Cells(2, 1).Select
Selection.CopyFromRecordset rs
End Function


Модератор: Учимся использовать тэги оформления кода - FAQ



Помогите, пожалуйста!!!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вывод на отдельный лист списка клиентов без повторений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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