Реструктуризация данных в Excel

Реструктуризация данных в Excel

Я создаю расписание в Excel.

У меня слева есть список имен, рядом с ним — их расписание каждые 15 минут, начиная с 11:00 (колонка «11:00», «11:15» и т. д.).

Каждые 15 минут им будет даваться задание, например, E (электронная почта), M (встреча), B (перерыв).

Мне нужно показать в другой таблице их расписания для каждой задачи. Например, у меня будет столбец Email, и для каждого имени столбец email покажет их расписания для задачи Email на основе первой таблицы с их запланированной задачей каждые минуты.

В столбце «Электронная почта» должно быть указано время с 11:00 до 12:00 (пример).

введите описание изображения здесь

Есть идеи?

решение1

Код:

Function MakeCompact(times As Range, shedules As Range, letter As String) As String
Dim i As Integer, n As Integer
If times.Cells.Count <> shedules.Cells.Count + 1 Then
    MakeCompact = "Error. Wrong source data."
    Exit Function
End If
n = times.Cells.Count
MakeCompact = ""
For i = 1 To n
    If letter = shedules.Cells(1, i).Value Then
        If Right(MakeCompact, 1) <> "-" Then
            MakeCompact = MakeCompact & "," & times.Cells(1, i).Value & "-"
        End If
    Else
        If Right(MakeCompact, 1) = "-" Then
            MakeCompact = MakeCompact & times.Cells(1, i).Value
        End If
    End If
Next
MakeCompact = Mid(MakeCompact, 2)
End Function

Использование:

Создайте таблицу:

     A      B   C   D   E   F   G
1    name   1   2   3   4   5   6
2    bob    m   m   b   m   m   
3    fred   b   m       e   e   
4                           
5           m   b   e           
6    bob                
7    fred   

Диапазон A1:G7 — исходные данные (строка 1 — заголовок).

Диапазон A5:D7 — это таблица, которую мы хотим заполнить.

Вставьте в B6 формулу:

=MakeCompact($B$1:$G$1;$B2:$F2;B$5)

Перетащите его по горизонтали и вертикали, чтобы заполнить ячейки.

Я думаю, что этой идеи достаточно для создания решения Вашей задачи.

P.S. Обратите внимание - есть дополнительная колонка над временем расписания.

PPS. После отладки сделайте функцию Volatile.

Связанный контент