powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос разбора массива данных на группы
14 сообщений из 14, страница 1 из 1
Макрос разбора массива данных на группы
    #37520474
gaint_re
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется массив данных (сумма заказа (руб) и клиент), их необходимо равномерно разделить на n групп. Возможно уже раньше это обсуждалось ( я правда не нашел). Помогите советом или ссылкой.
Заранее спасибо
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37520560
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На группы - это по суммам заказов? Чтобы общие суммы в группах были близки?
Похожую задачу мы решали здесь, но речь шла о _последовательности_.
Если же у вас заказы можно группировать не по порядку, а выборочно, то алгоритм можно сильно оптимизировать; либо, опять же, использовать статметоды...
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37521224
gaint_re
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Группы должны быть близкими по характеристикам, как по сумме, так и по кол-ву.
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37521772
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внятный пример данных и результата можете привести?
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37525926
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то на тему многомерной или иерархической кластеризации ?
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37525939
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может пригодится?

/topic/774671&hl=%ea%eb%e0%f1%f2%e5%f0%e8%e7%e0%f6%e8%ff
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37526246
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может всё проще, АВС-анализ? Или наоборот посложнее, RFM-сегментация - это уже клиентов сортировать ...
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37526999
gaint_re
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Исходная таблица:
Стоббец А - ID дела
Столбец Б - ID договор
Столбец С - ID клиента
Столбец Д - Сумма (договора к примеру в руб.)
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37527023
gaint_re
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"ID дела ""ID договор ""ID клиента ""Сумма "1"123-321"1150002"123-320"2150003"123-319"3200004"123-318"1250005"123-317"2100006"123-316"3150007"123-315"1150008"123-314"2150009"123-313"32000010"123-312"12500011"123-311"21000012"123-310"31500013"123-309"11500014"123-308"21500015"123-307"32000016"123-306"12500017"123-305"21000018"123-304"31500019"123-303"11000020"123-302"115000
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37527066
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gaint_re,

ID_клиентаSum - Сумма11450002750003105000

вопросы
группы внутри клиента

в одной группе разные клиенты

желательно один, но с добавками при необходимости
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37527071
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример-то закончите! что на выходе должно быть?
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37527077
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем случае, функция СУММПРОИЗВ() в помощь
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37531240
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Темнит автор. Тем не менее есть нулевой вариант: одна строчка = одна группа. Вопрос к автору: Почему такой вариант не подходит?

Но будем практичней:
Например, имеем поток договоров на судебные иски.
Имеем некоторое кол-во адвокатов, которые курируют клиентов.
Требуется обеспечить более менее равномерную загрузку адвокатов. При необходимости можно уволить лишних либо призвать новеньких. Равномерность загрузки в некотором смысле по кол-ву договоров и общей сумме договоров на адвоката.

Какие ограничения на число адвокатов? Если их нет, то годится нулевой вариант из начала поста.
Какие ограничения на число договоров, курируемых одним адвокатом?
То же для сумм?
---------------
В подобной постановке - это типичная задача кластеризации. Методов много, одни из них для заданного заранее кол-ва кластеров, в других это не оговаривается. В данном случае кластер=кучка договоров одного адвоката.
Пока неизвестно адвокаты - постояное число или нет.
Только в случае продолжения задачи я рекомендую исходя из этого остановиться на конкретном методе,
и не зачем выдумывать что-то своё. Например два типовых метода: <=К-соседей (неопределённое число кластеров и точки неравномерно разбросаны) и динамических сгущений (число кластеров задаётся заранее, этот вариант у меня по ссылке, здесь также можно последовательно прогнать задачку для разного числа кластеров, а потом выбрать какой красивше). Затем метод моифицируется под задачу.

Независимо от метода для конкретной задачи придётся выбрать метрику для сравнения близости 2-х кластеров. Методы взвешенных сумм не очень подходят для данных, имеющих большой разброс значений, но даже если в группе будет по 5-7 агентов, всё равно можно формально предложить в качестве метрики ранговый метод сравнения.
...
Рейтинг: 0 / 0
Макрос разбора массива данных на группы
    #37531352
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое главное - не надо изобретать велосипед.
Вот пример ранга. Сведём 2-мерную задачу к одномерной.
Получили N групп. В каждой группе Ki договоров и Ci=срзнач(Суммы в группе i)
K1 ...Kn и C1 ... Cn

ЗАменяем суммы на безразмерные величины
р(С1)= (С1 - М(С)) / СКО(С)
где
М(С)) = срзнач(С1 ...Ск)
СКО(С) = стандотклон(С1 ...Сn) - не помню точно функцию, это там, где делится не на N, а на (N-1).

Аналогично вместо чисел K1 ...Kn используем их нормированные значения т(К).

Ранг группы= т(К) * вес1 + р(С) * вес2,
где вес1 и вес2 подбираются по вкусу, но чтоб вес1 + вес2=1.
Чем ближе ранги, тем можно считать "ближе" группы.

Одно из свойств такого ранга: одинаковые ранги могут иметь две группы, у одной из которых много мелких сумм, а у другой сумм мало, но они крупные. Но повторю, фактический разброс результатов будет регулироваться исходными ограничениями.
И ещё повторю, не стоит изобретать самодельные методы. Типовых много и для всех доказаны сходимость итераций и согласованность со здравым смыслом. Надо выбрать один метод и его модифицировать под задачу.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Макрос разбора массива данных на группы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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