Excel에서 데이터 재구성

Excel에서 데이터 재구성

엑셀로 일정을 작성 중입니다.

왼쪽에는 이름 목록이 있고 그 옆에는 오전 11시부터 15분마다의 일정이 있습니다(오전 11시 열, 오전 11시 15분 등).

E(이메일), M(회의), B(휴식)와 같이 15분마다 작업이 주어집니다.

각 작업에 대한 일정을 다른 표에 표시해야 합니다. 예를 들어 이메일 열이 있고 각 이름에 대해 이메일 열에는 매 분마다 예약된 작업과 함께 첫 번째 테이블을 기반으로 이메일 작업 일정이 표시됩니다.

이메일 열에는 오전 11시~오후 12시가 표시되어야 합니다(예).

여기에 이미지 설명을 입력하세요

어떤 아이디어가 있나요?

답변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)

가로 및 세로로 드래그하여 셀을 채웁니다.

나는 이 아이디어가 귀하의 작업 솔루션을 만들기에 충분하다고 생각합니다.

추신. 주의하세요. 일정 시간 동안 추가 열이 있습니다.

조달청. 디버깅 후 함수를 Volatile로 만듭니다.

관련 정보