VBA 코드
데이터 전처리
1) login account가 10회 미만인 고객의 name과 e-mail 추출
2) total purchase amount이 500000 이상인 고객의 이름과 이메일
3) age가 20~50 사이인 고객 중 물건 구매를 4번 이하로 한 고객의 name과 e-mail 추출
Sub ExtractData()
는 매크로의 시작을 알리는 코드입니다.
Dim
은 변수를 선언하는 키워드로, i
, age
, purchase_count
, name
, email
, newRow
를 변수로 선언합니다. 변수 타입은 Integer
나 String
으로 지정됩니다.
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Extracted Data"
는 새로운 시트를 생성합니다. After
파라미터는 새로운 시트가 현재 엑셀 파일에서 가장 마지막에 위치하도록 지정합니다.
With Worksheets("Extracted Data")
는 새로 생성된 시트를 참조합니다. 이후에 .Cells(1, 1).Value = "name"
과 .Cells(1, 2).Value = "e-mail"
코드를 사용하여, 새로 생성된 시트의 첫 번째 행의 첫 번째 열과 두 번째 열에 "name"과 "e-mail"이라는 컬럼 이름을 추가합니다.
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
는 첫 번째 행은 컬럼 이름이 위치하므로, 두 번째 행부터 데이터를 추출하기 위한 반복문입니다.
age = Cells(i, 2).Value
는 i 번째 행의 2 번째 열(즉, age)의 값을 가져옵니다.
purchase_count = Cells(i, 5).Value
는 i 번째 행의 5 번째 열(즉, purchase count)의 값을 가져옵니다.
If age >= 20 And age <= 50 And purchase_count <= 4 Then
는 age가 20~50 사이이고 purchase count가 4번 이하인 조건을 검사합니다.
name = Cells(i, 1).Value
는 i 번째 행의 1 번째 열(즉, name)의 값을 가져옵니다.
email = Cells(i, 3).Value
는 i 번째 행의 3 번째 열(즉, email)의 값을 가져옵니다.
With Worksheets("Extracted Data")
는 새로 생성된 시트를 참조합니다. 이후에 .Cells(newRow, 1).Value = name
과 .Cells(newRow, 2).Value = email
코드를 사용하여, 새로 생성된 시트의 newRow
번째 행의 첫 번째 열과 두 번째 열에 name
과 email
값을 추가합니다.
newRow = newRow + 1
은 데이터를 추가할 때마다 newRow
값을 1 증가시킵니다.
Next i
는 For
반복문을 마칩니다.
End Sub
는 매크로를 종료합니다.
따라서, 위 코드는 먼저 "Extracted Data"라는 이름의 새로운 시트를 생성합니다. 그 다음, 첫 번째 행에 "name"과 "e-mail"이라는 컬럼 이름을 추가하고, 두 번째 행부터 마지막 행까지 반복문을 수행합니다. 이때, age가 20~50 사이이고 purchase count가 4번 이하인 조건을 만족하는 행만 추출하여, name과 email 값을 새로 생성된 시트에 추가합니다.
매크로를 실행하려면, VBA 에디터에서 ExtractData
함수를 선택한 후, F5
를 누르면 됩니다. 실행 결과, 새로운 시트가 생성되며, 조건에 맞는 고객의 name과 e-mail이 추려진 것을 확인할 수 있습니다.