Как отсортировать данные одного столбца и сопоставить данные другого столбца с некоторыми ячейками, были объединены в Excel - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь отсортировать данные одного столбца и сопоставить их с данными другого столбца в Excel 2013. Я не знаю, как объяснить больше, потому что я был действительно любителем, используя Excel, поэтому у меня есть такая таблица:

|Date      | Technician |    Task    |
|----------|------------|------------|
|01/01/2020|          CLOSED         |
|02/01/2020|Cindy       |Check       |
|02/01/2020|Cindy       |Repair      |
|03/01/2020|Cindy       |Check       |
|03/01/2020|Cindy       |Maintenance |
|04/01/2020|Joe         |Repair      |
|05/01/2020|          CLOSED         |
|06/01/2020|Joe         |Maintenance |
|06/01/2020|Steph       |Check       |

и я пытаюсь отсортировать и сопоставить так:

|Date      | Technician |    Task    |
|----------|------------|------------|
|01/01/2020|          CLOSED         |
|02/01/2020|Cindy       |Check       |
|02/01/2020|Cindy       |Check       |
|03/01/2020|Cindy       |Maintenance |
|03/01/2020|Cindy       |Repair      |
|04/01/2020|Joe         |Maintenance |
|05/01/2020|          CLOSED         |
|06/01/2020|Joe         |Repair      |
|06/01/2020|Steph       |Check       |

обычно я использую базу данных sql, и если она была в SQL Запрос, он должен быть:

select technician, task from employee order by technician, task asc;

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

1 Ответ

1 голос
/ 10 февраля 2020

Добро пожаловать на SO. Это все выполнимо с помощью формул Excel (согласно вашему тегу excel-formula), но я думаю, что самый простой способ - это использовать встроенные функции Excel.

Шаг 1 - выберите ваши данные ( Я предполагаю, что ваши данные хранятся в ячейках A1: B8)

Шаг 2 - go до Home > Sort & Filter > Custom Sort... - установите флажок «Мои данные имеют заголовки» и добавьте первый уровень ( Техник), затем используйте кнопку «Добавить уровень» и добавьте второй уровень (Задание):

enter image description here

Вот ваш окончательный результат:

enter image description here

Редактировать - для объединения всех ячеек в столбце B необходимо выполнить следующий код:

Sub UnMergeCells()
    Dim lngRows             As Long
    Dim lngRow              As Long

    With Sheets("Sheet1")
        lngRows = .UsedRange.Rows.Count

        For lngRow = 2 To lngRows
            If .Range("B" & lngRow).MergeCells Then
                .Range("B" & lngRow).MergeArea.UnMerge
            End If
        Next lngRow
    End With
End Sub

Затем вы можете выполнить три шага, которые я описал в своем первоначальном сообщении («Выборочная сортировка»). После того, как вы закончите, вы можете объединить все ячейки обратно в предыдущее состояние, запустив этот код:

Sub MergeCells()
    Dim lngRows             As Long
    Dim lngRow              As Long

    With Sheets("Sheet1")
        lngRows = .UsedRange.Rows.Count

        For lngRow = 2 To lngRows
            If .Range("B" & lngRow).Value = "CLOSED" Then
                .Range("B" & lngRow & ":C" & lngRow).Merge
            End If
        Next lngRow
    End With
End Sub
...