2014-06-18 2 views
0

Excel에서 다음 데이터가 있습니다.Excel의 그룹화 된 스택 차트

Project | 달 | 생성 된 통화 | 열린 통화 | 닫힌 통화

요청 | 2012 년 12 월 | 15 | 11 | 7

요청 | Jan 2013 | 6 | 8 | 9

요청 | 2013 년 2 월 | 6 | 5 | 2

dotcom | 2012 년 12 월 | 1 | |

dotcom | Jan 2013 | | 1 |

dotcom | 2013 년 2 월 | 1 | 2 | 1

데이터는 아주 작은 부분 집합입니다. 전체 데이터 세트의 경우 4 개의 프로젝트가 있으며 날짜 범위는 2012 년 6 월 2014 일입니다.

차트를 만들려고합니다. 월 및 각 프로젝트에 대해 데이터가 가로로 쌓이는 반면 X 축은 달

나는 내가 단지 만든 통화 열기 통화 중 하나를 사용하려면 내가 누적 막대 그래프를 만들 수 있습니다 Chart Image Required

을 생산하기 위해 찾고 차트의 모형을 부착 한 닫힘 호출합니다. 그러나 나는이 세 가지를 모두 합친 차트가 필요합니다.

+0

조금 가까이 접근하는 방법 ... 데이터를 VBA로 재결합하는 것에 동의하면 일반적인 막대 차트를 사용할 가능성이 있습니다 ... – user3514930

+0

VBA 경로를 시도 할 것입니다. 그러나 VBA에 대한 지식은 제한적입니다. 나에게이 작업을 수행하는 방법에 대해 머리를 맞출 수있는 기사/블로그 게시물에 연결할 수 있습니까? –

+0

나중에 참조 할 수 있도록 Excel에서 클러스터 된 누적 열 (또는 막대) 차트를 생성하는 방법을 보여주는 자습서를 작성했습니다. http : //peltiertech.com/clustered-stacked-column-bar-charts/ –

답변

1

내가 생각하는 것을 보여줍니다. 확인하는 경우,이 계획에 따라 ...
적응하기 위해 간단합니다

enter image description here

당신이 필요로 같은 것을 가지고 있지만, 간단한 차트 막대를 사용하십시오. 트릭은 올바른 방식으로 데이터를 변환하는 것입니다. ... 버튼 (업데이트)에 연결된 모듈 내부에이 코드를 사용하여 ... 더 유연하기 때문에 내가 VBA를 사용하는 것을
을하려면 :

Dim N0(1 To 100) As String 
Dim N1(1 To 100) As String 
Dim N2(1 To 100) As String 
Dim N3(1 To 100) As String 

Range("B14:H44").Clear 

Range("B1").Select 
e = 0 
For i = 1 To 9999 
    If ActiveCell.Offset(i, 0).Value = "" Then Exit For 
    e = e + 1 
    N0(e) = ActiveCell.Offset(i, 0).Value 
    N1(e) = ActiveCell.Offset(i, 1).Value 
    N2(e) = ActiveCell.Offset(i, 2).Value 
    N3(e) = ActiveCell.Offset(i, 3).Value 
Next 

Range("B15").Select 
For i = 1 To e 
    If (i > 1) And (N0(i) = N0(1)) Then Exit For 
    ActiveCell.Offset((i - 1) * 4, 0).Value = "[" 
    ActiveCell.Offset((i - 1) * 4 + 1, 0).Value = N0(i) 
    ActiveCell.Offset((i - 1) * 4 + 2, 0).Value = "]" 
    ActiveCell.Offset((i - 1) * 4 + 3, 0).Value = "" 
Next 
nRep = i - 1 
Debug.Print nRep 

nrow = 0 
For i = 1 To e 
    If (i > nRep) And (N0(i) = N0(1)) Then nrow = nrow + 1 
    For k = 1 To 99 
     If ActiveCell.Offset((k - 1) * 4 + 1, 0).Value = "" Then Exit For 
     If ActiveCell.Offset((k - 1) * 4 + 1, 0).Value = N0(i) Then 
      ActiveCell.Offset((k - 1) * 4, 1 + nrow).Value = N1(i) 
      ActiveCell.Offset((k - 1) * 4 + 1, 1 + nrow).Value = N2(i) 
      ActiveCell.Offset((k - 1) * 4 + 2, 1 + nrow).Value = N3(i) 
     End If 
    Next 
Next 

매크로 차트에 대한 새로운 범위의 데이터를 생성 ... 공백 라인은 Mounth 바닥에 막대를 시각적으로 구분하는 데 사용됩니다.
수동으로 또는 VBA를 통해 원하는 경우 차트를 조정할 수 있습니다 (간격 폭 감소, 레이블 추가 ...)

+0

정말 잘됐다. Excel에서 기본 데이터를 구조화하기위한 올바른 형식을 얻은 후에는 다른 모든 프로젝트와 시간대를 차트에 추가 할 수있었습니다. 고마워. 잘하면 경영진은 만족할 것이다 ;-) –

관련 문제