1

У меня есть список продуктов в A2:A21 (A1:M1 - заголовок). За этими продуктами стоят имена 12 владельцев (B2:M21), которые могут ремонтировать эти продукты. НО ... не все владельцы могут отремонтировать каждый товар. Вот почему есть пустые клетки. Я хочу создать автоматический второй лист с тем же списком товаров, но теперь только ОДИН владелец, выбранный из доступных владельцев. Я также хотел бы, чтобы выбор был разделен на равные. Чтобы у всех владельцев было одинаковое количество товаров (или как можно ближе). Спасибо!

2 ответа2

1

Скажем, мы начнем с:

Следующий макрос сначала копирует первый столбец на второй лист. Затем макрос начинается с первого продукта (сотовый телефон) и просматривает столбцы, начинающиеся со столбца B, в поисках "X". Когда "X" найден, владелец переносится на второй лист.

Макрос затем перемещается вниз ко второму продукту (зарядному устройству) и повторяет сканирование по столбцам. Но теперь он начинается со столбца C, а не столбца B ............ Это поможет равномерно распределить владельцев. Вот макрос:

Sub Owner()
    Dim s1 As Worksheet, s2 As Worksheet
    Dim i As Long, j As Long
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    s1.Range("A:A").Copy s2.Range("A1")
    j = 2
    For i = 2 To 21
loopit:
        If s1.Cells(i, j) = "X" Then
            s2.Cells(i, 2).Value = s1.Cells(1, j).Value
            j = j + 1
            If j = 14 Then j = 2
            GoTo exloopit
        Else
            j = j + 1
            If j = 14 Then j = 2
        End If
        GoTo loopit
exloopit:
    Next i
End Sub

и вот пример выходного листа:

1

То, что вы описываете, представляет собой простую задачу линейного программирования (или целочисленного программирования). В Excel есть надстройка для Solver, которая по умолчанию отключена. Вы можете включить его в Excel Options > Add-Ins > Manage Excel Add-Ins (Go) . Это добавит солвер к вашей ленте на вкладке Данные.

Ваша цель для решения будет максимизировать общее количество различных ремонтников. Ваши ограничения заключаются в том, может ли кто-либо ремонтировать определенный продукт, и что для каждого продукта требуется по крайней мере один ремонтник.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .