데이터 선택하여 그래프 보기..

기능/도구
작성자
호쪕찜
작성일
2021-09-12 00:15
조회
59
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

다음과 같은 데이터 구조에서 data1, data3, data7 등을 선택하면 선택한 data를 하나의 graph에 그려 비교하는 작업을 하고 싶은데

어떤 기능을 사용하면 좋을지 모르겠습니다 ㅠㅠ..

회원등급 : 씨앗등급
포인트 : 32 EP
총질문 : 1 개 (마감율 : 100%)
채택답변 : 0 개
전체 3

  • 2021-09-12 19:27
    채택된 답변

    분산형그래프를 원하시는것 같아 분산형그래프로 작업했습니다.

    메크로기록을 이용하여 만들었기에 만약 작동을 하지 않는다면

    작성자님의 버전에 맞는 메크로기록 코딩을 해주시면 됩니다.

    첨부파일 : SelectionChart.xlsm


    • 2021-09-12 20:07

      ... 원리가 어떻게 되는건가요..?


      • 2021-09-13 10:18
        Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        
        Dim Cht As Chart
        Dim Title As String
        Dim XRngArray As Variant
        Dim YRngArray As Variant
        Dim AreaSplits As Variant
        Dim AreaSplit As Variant
        Dim Rng As Range
        Dim i As Long
        Dim j As Long
        Dim k As Long
        
        i = 0
        
        Set Cht = Me.ChartObjects("차트 1").Chart
        
        If Selection.Areas.Count > 1 Then
        
            For Each Rng In Selection.Areas
                If Not Intersect(Rng, Range("A1:B20")) Is Nothing Then
                    If Title <> "" Then
                        Title = Title & ", Data1"
                    Else
                        Title = "Data1"
                    End If
                End If
                If Not Intersect(Rng, Range("D1:E20")) Is Nothing Then
                    If Title <> "" Then
                        Title = Title & ", Data2"
                    Else
                        Title = "Data2"
                    End If
                End If
                If Not Intersect(Rng, Range("G1:H20")) Is Nothing Then
                    If Title <> "" Then
                        Title = Title & ", Data3"
                    Else
                        Title = "Data3"
                    End If
                End If
                If Not Intersect(Rng, Range("J1:K20")) Is Nothing Then
                    If Title <> "" Then
                        Title = Title & ", Data4"
                    Else
                        Title = "Data4"
                    End If
                End If
            Next
        Else
            If Not Intersect(Target, Range("A1:B20")) Is Nothing Then
                If Title <> "" Then
                    Title = Title & ", Data1"
                Else
                    Title = "Data1"
                End If
            End If
            If Not Intersect(Target, Range("D1:E20")) Is Nothing Then
                If Title <> "" Then
                    Title = Title & ", Data2"
                Else
                    Title = "Data2"
                End If
            End If
            If Not Intersect(Target, Range("G1:H20")) Is Nothing Then
                If Title <> "" Then
                    Title = Title & ", Data3"
                Else
                    Title = "Data3"
                End If
            End If
            If Not Intersect(Target, Range("J1:K20")) Is Nothing Then
                If Title <> "" Then
                    Title = Title & ", Data4"
                Else
                    Title = "Data4"
                End If
            End If
        End If
        
        If Title <> "" Then
            Cht.ChartTitle.Text = Title
            Cht.ChartTitle.Format.TextFrame2.TextRange.Font.Bold = True
            Cht.ChartTitle.Format.TextFrame2.TextRange.Font.Size = 15
            
            AreaSplits = Split(Title, ",")
            
            ReDim XRngArray(0 To UBound(AreaSplits))
            ReDim YRngArray(0 To UBound(AreaSplits))
        
            For Each AreaSplit In AreaSplits
                Select Case Trim(AreaSplit)
                Case Is = "Data1"
                    XRngArray(i) = "Sheet1!A3:A20"
                    YRngArray(i) = "Sheet1!B3:B20"
                    i = i + 1
                Case Is = "Data2"
                    XRngArray(i) = "Sheet1!D3:D20"
                    YRngArray(i) = "Sheet1!E3:E20"
                    i = i + 1
                Case Is = "Data3"
                    XRngArray(i) = "Sheet1!G3:G20"
                    YRngArray(i) = "Sheet1!H3:H20"
                    i = i + 1
                Case Is = "Data4"
                    XRngArray(i) = "Sheet1!J3:J20"
                    YRngArray(i) = "Sheet1!K3:K20"
                    i = i + 1
                End Select
            Next
            
            If Cht.FullSeriesCollection.Count > 1 Then
                For j = 2 To Cht.FullSeriesCollection.Count
                    Cht.FullSeriesCollection(2).Delete
                Next
            End If
            
            For k = 1 To UBound(AreaSplits) + 1
                If k = 1 Then
                    Cht.FullSeriesCollection(k).Name = Trim(AreaSplits(k - 1))
                    Cht.FullSeriesCollection(k).XValues = XRngArray(k - 1)
                    Cht.FullSeriesCollection(k).Values = YRngArray(k - 1)
                Else
                    Cht.SeriesCollection.NewSeries
                    Cht.FullSeriesCollection(k).Name = Trim(AreaSplits(k - 1))
                    Cht.FullSeriesCollection(k).XValues = XRngArray(k - 1)
                    Cht.FullSeriesCollection(k).Values = YRngArray(k - 1)
                End If
            Next
        End If
        
        End Sub
        

        일딴 여기서 If Selection.Areas.Count > 1 Then 으로 선택한 범위가 한개로만 이루어져있는지 아니면 Ctrl을 이용해 다중 선택을 하였는지 판단을 해줘야합니다.
        그리고 선택범위가 여러개면 For문을 이용해 각각의 다중 범위마다 Data가 들어가있는 범위와 교집합이 있는지 찾아야하고
        그게 아니라면 선택범위 즉 Target과 Data의 교집합이 있는지 찾아줍니다.
        그런 후 Data가 들어가있는 부분을 각각의 배열에 담고 그 배열에 담겨있는 값이 무엇인지에 따라 X축,Y축,범례이름을 각각 지정해줍니다.
        그리고 난 후 차트에서 한 개의 데이터만 남겨두고 전부 삭제한 후
        Data들과의 교집합 개수 - 1 만큼 데이터를 추가한 후 데이터의 X,Y,범례를 각각 지정해주는 코드입니다.
        더 자세하게 설명해드릴려면 너무 글이 길어지기에 간단하게만 설명해드립니다.


전체 4,045
번호 카테고리 제목 작성자 작성일 추천 조회
4029 기능/도구
New 자동화 달력 공휴일 등록 시 날짜말고 메모부분 빨간색 변경이 안되서 어렵습니다. (1)
거부기 | 14:30 | 추천 0 | 조회 22
거부기 14:30 0 22
4028 문서서식
New 엑셀 CTRL+G (이동) 질문드립니다. 첨부파일 (2)
월마리아 | 03:01 | 추천 0 | 조회 27
월마리아 03:01 0 27
4027 차트/그래프
New 오빠두 간트 차트에 대한 질문이 있습니다. 첨부파일 (4) 답변완료
치킨카뤠 | 01:22 | 추천 0 | 조회 23
치킨카뤠 01:22 0 23
4026 함수/공식
New 부서 자동 배정 프로그램 완성 요청합니다. 첨부파일
승재빠 | 2021.09.25 | 추천 0 | 조회 42
승재빠 2021.09.25 0 42
4025 함수/공식
New 질문있습니다.! 중복값 표시 및 데이터 숫자 세기. 첨부파일 (1)
Barcelona | 2021.09.25 | 추천 0 | 조회 24
Barcelona 2021.09.25 0 24
4024 기능/도구
New 엑셀 종료 대화창이 이상합니다 ㅜㅜ (3) 답변완료
어제부터VBA | 2021.09.25 | 추천 0 | 조회 26
어제부터VBA 2021.09.25 0 26
4023 함수/공식
New 특정단어만 변경 도와주세요. 첨부파일 (3)
블랑블랑 | 2021.09.25 | 추천 0 | 조회 38
블랑블랑 2021.09.25 0 38
4022 문서서식
New 엑셀 느림 현상 OLE 작업 (1)
원더우먼 | 2021.09.25 | 추천 0 | 조회 28
원더우먼 2021.09.25 0 28
4021 VBA
New 체크박스 첨부파일 (1)
미리내 | 2021.09.24 | 추천 0 | 조회 29
미리내 2021.09.24 0 29
4020 함수/공식
New 조건부 함수 도움 부탁드립니다. 첨부파일 (1)
액셀 공부 | 2021.09.24 | 추천 1 | 조회 19
액셀 공부 2021.09.24 1 19
4019 차트/그래프
New 2개 슬라이서에 대한 차트 연결 문의 (1)
please | 2021.09.24 | 추천 1 | 조회 16
please 2021.09.24 1 16
4018 함수/공식
New 다른시트 값을 조건부로 출력 (3)
KT | 2021.09.24 | 추천 0 | 조회 35
KT 2021.09.24 0 35
4017 함수/공식
New vlookup 여러조건 여러개 출력 관련 질문입니다 첨부파일 (1)
바스크 | 2021.09.24 | 추천 0 | 조회 32
바스크 2021.09.24 0 32
4016 VBA
New FOR 이용하여 파일 가져오기 첨부파일 (1)
ArkGie | 2021.09.24 | 추천 0 | 조회 23
ArkGie 2021.09.24 0 23
4015 VBA
New VBA 변수넣기 (2)
kimki**** | 2021.09.24 | 추천 1 | 조회 25
kimki**** 2021.09.24 1 25
4014 차트/그래프
New 차트관련문제 (4)
콩콩이0782 | 2021.09.24 | 추천 0 | 조회 22
콩콩이0782 2021.09.24 0 22
4013 함수/공식
New max(if) 부등호 사용 질문입니다 첨부파일 (4) 답변완료
Ivan Bae ඞ | 2021.09.24 | 추천 1 | 조회 39
Ivan Bae ඞ 2021.09.24 1 39
4012 VBA
엑셀 VBA 선택영역을 이미지로 추출에서 "일괄로" 추출하는 방법 문의드립니다.
태져리 | 2021.09.23 | 추천 0 | 조회 37
태져리 2021.09.23 0 37
4011 함수/공식
VLookup 다중조건 입력_배열함수_복사 첨부파일 (8)
hiv**** | 2021.09.23 | 추천 0 | 조회 65
hiv**** 2021.09.23 0 65
4010 기능/도구
엑셀2016인데 아이콘 창이 없어요 첨부파일 (2) 답변완료
빠꾸집사 | 2021.09.23 | 추천 1 | 조회 27
빠꾸집사 2021.09.23 1 27
4009 VBA
vba MATCH함수 오류 검색하는 값이 검색범위에 포함되지 않을 때 오류
kimki**** | 2021.09.23 | 추천 0 | 조회 43
kimki**** 2021.09.23 0 43
4008 VBA
중첩 for문의 해결 (next 컨트롤 변수 참조가 잘못되었습니다) (2)
kimki**** | 2021.09.23 | 추천 0 | 조회 34
kimki**** 2021.09.23 0 34
4007 함수/공식
자동입력 관련 문의드립니다. 첨부파일 (2)
성운 | 2021.09.23 | 추천 0 | 조회 34
성운 2021.09.23 0 34
4006 피벗테이블
피벗테이블에서 '값 행 표시' 질문드립니다. 첨부파일
월마리아 | 2021.09.23 | 추천 0 | 조회 32
월마리아 2021.09.23 0 32
4005 VBA
네이버 쇼핑 댓글 가져오기 (1)
아가늑대 | 2021.09.22 | 추천 1 | 조회 47
아가늑대 2021.09.22 1 47
4004 기능/도구
엑셀 비활성화된 링크들 활성방법 (3) 답변완료
N솔 | 2021.09.22 | 추천 0 | 조회 45
N솔 2021.09.22 0 45
4003 함수/공식
(수정 재업로드) 질문 다시 올립니다! (9) 답변완료
치운 | 2021.09.22 | 추천 0 | 조회 41
치운 2021.09.22 0 41
4002 함수/공식
다음과 같이 하려면 어떤 함수를 써야할까요? 아니면 노가다해야하나요? (7)
치운 | 2021.09.22 | 추천 0 | 조회 51
치운 2021.09.22 0 51
4001 VBA
Change이벤트관련 문의사항 첨부파일 (2) 답변완료
H.B | 2021.09.22 | 추천 0 | 조회 48
H.B 2021.09.22 0 48
4000 함수/공식
TEXTJOIN 표시 형식 (1)
제비제비 | 2021.09.22 | 추천 1 | 조회 45
제비제비 2021.09.22 1 45