|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007):
* 아래줄에 질문을 작성하세요 >>
A열 B열
2018.01.01. 갑,을
2018.01.02. 갑,을,병
2018.01.03. 갑,을,정
2018.01.04. 을,병
위 데이터를 기본으로 해서 B열과 C열의 값을 자동으로 구할 수 있을까요
A열 B열 C열
(A열 값이 포함된 날의 일만 표시) (A열이 포함된 날의 일수)
갑 01,02,03 3
을 01,02,03,04 4
병 02,04 2
정 03 1
==============[고구마님 글에 대한 답변입니다]==============
Sheet1에 기본 데이터가 있고
Sheet2에 결과를 만듬
Sub getCount()
Dim shtX As Worksheet, rTg As Range
Dim rData As Range, rX As Range
Dim vTemp, vX
Dim iCnt As Integer
Dim rFind As Range
Set rData = Worksheets(1).Range("A1").CurrentRegion
Set shtX = Sheets(2)
shtX.UsedRange.Clear
For Each rX In rData.Rows
vTemp = Split(rX.Cells(1, 2), ",")
For Each vX In vTemp
Set rFind = shtX.Columns(1).Find(vX, , , xlWhole)
If rFind Is Nothing Then
Set rTg = shtX.Cells(Rows.Count, 1).End(xlUp)
If rTg <> "" Then Set rTg = rTg.Offset(1)
With rTg
.Value = vX
.Cells(1, 2).NumberFormat = "@"
.Cells(1, 2) = Mid(rX.Cells(1).Value, 9, 2)
.Cells(1, 3) = 1
End With
Else
With rFind
.Cells(1, 2) = .Cells(1, 2) & "," & Mid(rX.Cells(1), 9, 2)
.Cells(1, 3) = .Cells(1, 3) + 1
End With
End If
Next
Next
End Sub
|
|