본문 바로가기

consolidate6

[기초방] VBA 100제 #76 [ 상위랭커 구하기 ] 더보기 Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Intersect([c3], Target) Is Nothing Then Exit Sub [c3].Activate [j7: j1000].Clear Call 기초방76 End Sub Option Explicit Sub 기초방76() Dim vall Dim rngAll As Range: Set rngAll = [g6].CurrentRegion Dim rngX As Range: Set rngX = [j7] Dim rngD As Range Application.ScreenUpdating = False Set rngAll = rngAll.Offset(1).Resize(rngAll.R.. 2023. 10. 17.
[VBA] 그룹별 합계 구하고 병합하기 (Consolidate vs Sumif) 머리도 식힐 겸 그룹별 합계를 구한 후 병합하는 문제를 풀어보려고 한다. 원래 이런 문제의 정석은 For문을 순환하면서 현재값과 아래값을 서로 비교하면서 값들을 하나씩 증가하다가 현재값과 아래값이 서로 다르면 그때까지 증가된 값으로 병합하는게 정석이다. 이 블로그 자체가 그런 기본 코드를 선호하지 않기에 코드를 약간 꼬아서 만들어 보았다. 문제는 이렇다. 이름과 점수가 무작위로 섞혀있는 상태에서 1. 정렬을 해야한다. 2. 각 그룹을 추출해야 하고 3. 추출한 그룹의 숫자에 맞게 합계를 출력하고 병합하여야 한다. 이번 문제는 Consolidate와 Workbook의 함수인 Sumif로 만들어보았다. Consolidate의 단점은 전에도 말했듯이 이런식으로 Consolidate의 작업 내역들을 임시로 출력.. 2021. 11. 14.
[VBA_Min/Max] 월별 매출데이터 최소값 최대값 구하기 이번에 풀어본 문제는 매출데이터가 월별로 있을 때 각팀에서 매월 최소값과 최대값을 구하는 것이다. 일단 기본적으로 1월부터 12월까지 12번을 열 방향으로 순환을 해야 하고 각 팀에서 값들을 서로 비교하며 최소값과 최대값을 구해야 하는 문제의 난이도 보다는 좀 귀찮은 문제이다. 처음에 구해본 방식은 딕셔너리를 두개를 선언하여 하나는 최소값을 하나는 최대값을 구해서 총 12번을 순환하는 코드를 만들어 보았다. 딕셔너리를 한번만 사용해서 아이템값에 배열로 넣어서 V(0)에 최소값 / V(1)에 최대값을 넣어보려 했지만 일단 들어는 가는데 수정이 되질 않았다. 시간내어서 다시 도전해 보려고 한다. 두번째 방식은 Consolidate 이다. https://1stminokingdom.tistory.com/8 [V.. 2021. 8. 29.
[VBA_매출순위] Consolidate .vs. ADO를 통한 매출순위 구하기 순위를 구할때는 통상 rank 함수나 rank.EQ 함수를 통해서 구하곤 한다. 이번 문제는 2021년 8월 동안의 매출을 팀명으로 통합하여 상위 3개 팀의 이름과 매출을 출력하는 것이다. Consolidate 사용에 대한 것은 이전 글을 참조하길 바란다. https://1stminokingdom.tistory.com/8 [VBA_Consolidate] 부분합 구하기 몇일전에 같은 연번내에서 부분합 구하기를 한 적이 있다. 하면서도 문제에 비해서 너무 요란하게 코드를 작성하는게 아닌가 싶어서 구글링을 했더니 그 긴 코드가 한줄로 가능한것을 보고 역 1stminokingdom.tistory.com 이번 구문에서 조심해야 할것은 시트를 넘나들어야 하기 때문에 영향을 받을 시트의 시트명을 반드시 기재를 하면서.. 2021. 8. 27.