powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Распределение массива заявок по менеджерам
8 сообщений из 8, страница 1 из 1
Распределение массива заявок по менеджерам
    #38527623
Voskreswaja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, форумчане!
Помогите, пожалуйста!
Никак не могу решить задачу на VBA!

В таблице Excel 3 столбца: Номер заявки, ФИО клиента и ФИО менеджера. Столбцы Номер заявки и ФИО клиента заполненные (порядка 500 строк). Необходимо распределить заявки по менеджерам (в фирме 7 менеджеров).
ФИО менеджеров берутся из массива с другого листа.

В столбце ФИО клиента могут встречаться одинаковые значения (один и тот же клиент может встречаться несколько раз на разных строках (то есть один клиент может подать более одной заявки)).

Необходимо сделать так, чтобы все заявки распределись по менеджерам, причем у каждого менеджера в итоге должно быть примерно одинаковое количество заявок, но!!! все заявки одного и того же клиента должны попасть одному и тому же менеджеру.

Помогите, пожалуйста. чем сможете!
Заранее благодарю.
...
Рейтинг: 0 / 0
Распределение массива заявок по менеджерам
    #38527641
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описывай выбранный для решения алгоритм и показывай, что уже сделано для его реализации.
...
Рейтинг: 0 / 0
Распределение массива заявок по менеджерам
    #38528734
Voskreswaja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. записать данные со второго листа с фамилиями менеджеров в массив
2. в столбце ФИО клиента начиная со второй строки (1 строка - заголовок) запустить цикл, который будет сравнивать каждое значение с вышестоящими
если в какой-нибудь ячейке из вышестоящих найдется значение, равное тому, что мы имеем в анализируемой ячейке, то в ячейку столбца ФИО менеджера мы копируем значение этого же столбца из найденной выше ячейки, если дубликата выше не находим, то вставляем элемент из массива.


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

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
l = ThisWorkbook.Sheets("заявки").Cells(Rows.Count, 13).End(xlUp).Row
h = l + 1
r = ThisWorkbook.Sheets("менеджеры").Cells(1, 2).Value
Dim a() As String
ReDim a(r)
For i = 3 To r + 2
For p = h To n  r
a(r) = ThisWorkbook.Sheets("менеджеры").Cells(i, 3).Value
ThisWorkbook.Sheets("менеджеры").Cells(i + 1, 4).Value = a(r)
ThisWorkbook.Sheets("заявки").Cells(i + p - 3, 13).Value = a(r)
Next p
Next i




Теперь же не получается написать, пробую:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
For i = 3 To l
For j = 1 To i - 1
If Cells(i, 1).Value = Cells(j, 1).Value Then
Cells(i, 2).Value = Cells(j, 2).Value
Else
Cells(i, 2).Value = a(r)
End If
Next
Next




не работает...
Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Распределение массива заявок по менеджерам
    #38528752
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не могу понять. Менеджерам заявки уже распределены менеджерам или нет? Если нет - я не вижу в этом алгоритме, по какому принципу назначается менеджер на заявку.
...
Рейтинг: 0 / 0
Распределение массива заявок по менеджерам
    #38528756
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно, имелось ввиду вот это
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
For i = 3 To l
  For j = 1 To i - 1
  If Cells(i, 1).Value = Cells(j, 1).Value Then
    Cells(i, 2).Value = Cells(j, 2).Value --нашли
    Exit For
  End If
  If j = i Then Cells(i, 2).Value = a(r) --не нашли
  Next
Next

откройте для себя отладку и пошаговое выполнение программы (раз не получается понять по коду)
...
Рейтинг: 0 / 0
Распределение массива заявок по менеджерам
    #38528757
Voskreswaja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На втором листе список ФИО менеджеров, нужно считать их в массив, а затем по очереди доставать для каждой заявки
менеджеры: Иванов. Петров. Сидоров

должно получится что-то вроде

Заявка1 Иванов
Заявка2 Петров
Заявка3 Сидоров
Заявка4 Иванов
Заявка5 Петров
Заявка6 Сидоров
Заявка7 Иванов
...
Рейтинг: 0 / 0
Распределение массива заявок по менеджерам
    #38528774
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На служебном листе постройте сводную таблицу Клиент-Количество. А потом раскидывайте это барахло по менеджерам.
В принципе это вариант задачи о рюкзаке - равномерная раскладка по рюкзакам.
...
Рейтинг: 0 / 0
Распределение массива заявок по менеджерам
    #38528883
Voskreswaja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Распределение массива заявок по менеджерам
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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