Страницы: 1
RSS
Поделить количество клиентов на количество сотрудников и присвоить каждому клиенту сотрудника
 
Имеется список из 6000 строк(бывает разное кол-во), необходимо поделить это количество на сотрудников и заполнить по порядку графу сотрудников. Т.е. если 6 сотрудников то столбец сотрудник чтоб заполнился, взяв первую фамилию Иванов и заполнил ей первые 1000 строк, далее Петрова в след 1000 строк и так далее.. Как это сделать ума не приложу... Пока тупо на калькуляторе делю и протягиваю вниз... Уходит куча времени, при том что бывают и по 20 тысяч строки...
 
А как быть, если количество строк не делится на количество сотрудников без остатка?
 
можно округлить в +1 сверху, пускай внизу меньше будет. т.е. если выходит 460,475 округлить до 461, а скок останется последнему это не столь важно.
 
Округляйте сами
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
Dim iLR As Long
Dim n As Long
 n = Cells(Rows.Count, 1).End(xlUp).Row - 1     'кол-во строк
 Range("C2:C" & n + 1).ClearContents            'очищаем столбец С
 iLR = Cells(Rows.Count, "G").End(xlUp).Row
 n = n / (iLR - 1)                              'кол-во повторов
  For i = 2 To iLR                              'цикл по ФИО
    iLastRow = Cells(Rows.Count, "C").End(xlUp).Row + 1
    Cells(iLastRow, "C").Resize(n) = Cells(i, "G")
  Next
End Sub
 
Попробуйте так в ячейку C2 и протянуть вниз:
Код
=ИНДЕКС(G:G;(СЧЁТЗ(G:G)-1)/(СЧЁТЗ(A:A)-1)*(СТРОКА()-2)+2)
 
Цитата
Светлый написал:
Попробуйте так в ячейку C2 и протянуть вниз:Код ? 1=ИНДЕКС(G:G;(СЧЁТЗ(G:G)-1)/(СЧЁТЗ(A:A)-1)*(СТРОКА()-2)+2)
Спасибо, работает! А позвольте не скромный вопрос, а что все значения значат, функция индекса знакома , а вот что внутри происходит мне не понятно, очень хочется понять, что каждым действием делаем?
Изменено: Shadow_113 - 07.06.2020 22:42:06
 
Цитата
Kuzmich
Спасибо тоже как вариант неплохо работает.
Изменено: Shadow_113 - 08.06.2020 00:44:05
 
Shadow_113, вернитесь и удалите то, что Вы ошибочно считаете цитатой.
И запомните: кнопка цитирования не для ответа!
Страницы: 1
Наверх