Случайное распределение задач сотруднику с процентом в Excel - PullRequest
0 голосов
/ 22 сентября 2019

На самом деле я работаю над макросом, который будет случайным образом распределять задачу сотруднику в соответствии с назначенным процентом.Я не смог подготовить / получить точный код VBA для него.Обращение за помощью по этому вопросу.Например, у меня есть лист с несколькими столбцами (A - Задача, B - Образец 1, C - Назначен) и строками (содержит задачи, т.е. Задачи 1 - Задача 8).Также у меня есть список сотрудников с процентом распределения.Сачин - 50% Рахул - 30% Аджай - 20%

Какой конечный результат я хочу, чтобы применить фильтр «А» в столбце (Пример 1) и назначить сотруднику задачу случайным образом с их процентом на видимых ячейках.

Я смог получить его с помощью метода цикла;однако я смотрю это методом рандомизации.Я имею в виду случайное распределение с соответствующими процентами.Спасибо!Пожалуйста, смотрите ниже код -

Dim Total as Integer
Dim Sachin as Integer
Dim Rahul as Integer
Dim Ajay as Integer
Dim i, j as Integer
      With Sheets("Sheet1").Range("A1").CurrentRegion    
        .AutoFilter Field:=2, Critria1:="A"
      End With
      ActiveSheet.Range("A2:C" & Cells(Row.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select

Set RowRange = Selection
    Total = 0
For Each rw In RowRange.Rows
    Total = Total + 1
Next rw

Sachin = Total * 0.5
Rahul = Total * 0.25
Ajay = Total * 0.25

i = 0
For Each rw In RowRange.Rows
j = i mod 3
    If Sachin >=1 And j = 0 Then
       Cells(rw.Row, 10) = "Sachin"
       Sachin = Sachin - 1
    ElseIf Rahul = 0 And Ajay = 0 Then
       Cells(rw.Row, 10) = "Sachin"
       Sachin = Sachin - 1
    End If

    If Rahul >=1 And j = 1 Then
       Cells(rw.Row, 10) = "Rahul"
       Rahul = Rahul - 1
    End If

    If Ajay >=1 And j = 2 Then
      Cells(rw.Row, 10) = "Ajay"
      Ajay = Ajay - 1
    End If

i = i + 1
Next rw
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...