OfficeTutor.com
배움터 나눔터 교육센터 오튜장터
 통합검색  
  Home > 나눔터 > 엑셀 > 묻고답하기
엑셀
워드
액세스
파워포인트
아웃룩
프런트페이지
인포패스
원노트
비지오
쉐어포인트
포토드로우
퍼블리셔
오피스공통
MVP 안내
MVP 명예의 전당
MVP 카페

 

 

 

 
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 dew (dewdrop)

추천:  0
파일:     데이터처리_Ans1.xlsm (18.8KB) 조회:  60
제목:   [RE]엑셀 A열에 자료입력 B열 자동정렬 C입력개수 표시하도록 하려면
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):
2016
* 아래줄에 질문을 작성하세요 >>

A열B열C열
3     3    1      A열에 3 처음 입력시/3이 1개 입력

A열B열C열
3     1    1
1     3    1   A열에 1 추가입력시/3  이 1개/1이 1개
                    입력 되었으을  표시

A열B열C열
3     1    1
1     2    1
2     3    1 A열에 2추가 입력시

A열B열C열
3    1     1
1    2     2   A열에 DATA가 추가되면
2    3     1   B열에 고유값을 표시하며
2           C열에는 고유값에 해당하는 입력개수
                   표시하려면
                   B,C 열에 적절한 수식을
                   알고 싶습니다.
                    1  이  1번  2가 2번   3이 1번
                     입력되었음  을  B C  열에
                    나타나게   하려면


참고로 설명의 편의를 위해 숫자로
적었는데 실제 자료는 문자입니다.
==============[가우스님 글에 대한 답변입니다]==============

워크시트 이벤트 함수(VBA) 이용했습니다.
첨부화일 참고하세요.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    
    Application.EnableEvents = False
    
    Dim rACol As Range, rBCol As Range, rX As Range
    Dim oListSoc As Object, oList As Object
    Dim iX As Integer
    Dim sVal As String
    
    On Error GoTo Exit_Sub
    Set rACol = Columns(1).SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
    
    Set oListSoc = CreateObject("System.Collections.ArrayList")
    Set oList = CreateObject("System.Collections.ArrayList")
    
    For Each rX In rACol.Cells
        sVal = rX
        oListSoc.Add sVal
        If Not oList.Contains(sVal) Then
            oList.Add sVal
        End If
    Next
    
    Range("A:C").Clear
    Set rACol = Cells(1, 1).Resize(UBound(oListSoc.ToArray) + 1)
    rACol = WorksheetFunction.Transpose(oListSoc.ToArray)
    
    Set rBCol = Cells(1, 2).Resize(UBound(oList.ToArray) + 1)
    rBCol = WorksheetFunction.Transpose(oList.ToArray)
    rBCol.Sort Key1:=rBCol.Cells(1), Header:=xlNo
    
    For Each rX In rBCol
        rX.Offset(0, 1) = WorksheetFunction.CountIf(rACol, rX)
    Next
    
Exit_Sub:
    If Err.Number <> 0 Then Range("B:C").Clear
    Application.EnableEvents = True
End Sub

 
[불량 게시물 신고]  
        
  

작성일 : 2019-09-30(14:34)
최종수정일 : 2019-09-30(14:34)
 


 ◎ 관련글

  제 목   작성자   날짜
엑셀 A열에 자료입력 B열 자동정렬 C입력개수 표시하도록 하려면 가우스 2019-09-26
[RE]엑셀 A열에 자료입력 B열 자동정렬 C입력개수 표시하도록 하려면 dew 2019-09-30

 
 
회사소개 | 이용약관 | 개인정보 처리방침 | 회원정보수정 | 교육신청 및 문의 | 이메일무단수집거부 위로

오피스튜터 블로그 오피스튜터페이스북 오피스튜터유투브
110-722 서울 종로구 세종대로23길 47, 601-74 ㈜오피스튜터 ☎1544-4102 대표이사 : 전경수
개인정보관리책임자 : 이희진(privacy@officetutor.com) 사업자등록번호 120-86-14501
통신판매업신고 2013-서울종로-0547
norton
Copyright ⓒ OfficeTutor.com 이 페이지의 저작권은 ㈜오피스튜터와 콘텐츠 제공자에게 있습니다. 무단 복제를 금합니다.
Microsoft 및 Office 로고는 미국, 대한민국 및/또는 기타 국가에서의 Microsoft Corporation 등록 상표 또는 상표입니다.