Daten in Excel neu strukturieren

Daten in Excel neu strukturieren

Ich erstelle einen Zeitplan in Excel.

Auf der linken Seite habe ich eine Liste mit Namen, daneben sind alle 15 Minuten ihre Zeitpläne ab 11:00 Uhr (Spalte 11:00 Uhr, 11:15 Uhr usw. usw.).

Ihnen wird alle 15 Minuten eine Aufgabe zugewiesen, etwa E (E-Mail), M (Besprechung), B (Pause).

Ich muss in einer anderen Tabelle ihre Zeitpläne für jede Aufgabe anzeigen. Ich habe beispielsweise eine Spalte „E-Mail“, und für jeden Namen zeigt die Spalte „E-Mail“ ihre Zeitpläne für E-Mail-Aufgaben basierend auf der ersten Tabelle mit ihren alle Minuten geplanten Aufgaben.

In der E-Mail-Spalte sollte 11:00–12:00 Uhr angezeigt werden (Beispiel).

Bildbeschreibung hier eingeben

Irgendwelche Ideen?

Antwort1

Code:

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

Verwendung:

Erstellen Sie die Tabelle:

     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   

Der Bereich A1:G7 enthält Quelldaten (Zeile 1 ist die Kopfzeile).

Der Bereich A5:D7 ist eine Tabelle, die wir füllen möchten.

Setzen Sie in B6 die Formel ein:

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

Ziehen Sie es horizontal und vertikal, um die Zellen zu füllen.

Ich denke, diese Idee reicht aus, um Ihre Aufgabenlösung zu erstellen.

PS. Achtung – es gibt eine zusätzliche Spalte für die Fahrzeit.

PPS. Machen Sie die Funktion nach dem Debuggen flüchtig.

verwandte Informationen