본문 바로가기

배열5

[VBA] 매출을 정렬해보자(Feat. ArrayList, RegExp) 정렬문제는 솔직히 좀 짜증난다.. 굳이 매크로로 안해도 되기에 이게 과제로 나오면 그냥 몸이 꼬이고 그냥 건드리기가 싫어진다. 그래서 문제를 좀 더 꼬아서 만들어 보았다. 문제는 괄호속 매출 기준으로 내림차순 정렬을 하고 순번으로 오름차순 정렬을 하는것이다. 순번과 매출이 모두 숫자가 아니라 텍스트화 되어 있기 때문에 이 상태로 정렬을 하게되면 1, 10, 11, 2, 21, 29,3 .... 뭐 이런식으로 정렬이 될 것이다. 따라서 이러한 문제를 풀기 위해서는 매출을 뽑아내고 이것을 다시 숫자화 시켜서 정렬을 하여야 한다. 그런 다음 이 숫자화 되어 있는 매출을 순환 하면서 원본 데이터에 이 텍스트화 된 데이터에 매출이 있는지 확인 하기 위해서 다시 텍스트화 시켜서 비교하면서 배열에 담아야 한다. 풀이.. 2022. 12. 13.
[VBA] 스토쿠를 풀어보자(Feat. 앳마) https://1stminokingdom.tistory.com/74 [VBA]스토쿠를 풀어보자 VBA를 처음배우면서 언젠가 꼭 해보고 싶다하고 한게 스토쿠였다. 그때는 막연하게 꿈일것만 같았던 일이 VBA를 배운지 2년 정도되니 구현을 할 수 있게 되었다. 물론 정말 잘하는 분들이 풀어놓 1stminokingdom.tistory.com 이전 스토쿠1 버전에서는 본인이 직접 푸는 방식으로 풀다가 경우의 수가 너무 많아질때는 그냥 1부터 9까지 하나씩 넣어보는 방식으로 풀었다고 하면 이번 공개할 코드는 그냥 처음부터 1부터 9까지 경우의 수를 넣어서 푸는 방식으로 구현하였다. 코드의 가이드 라인은 앳마님 블로그에서 참고를 하였다. https://m.blog.naver.com/PostView.naver?isH.. 2022. 5. 16.
[VBA] 딕셔너리 배열로 대체하기 딕셔너리를 두고 자꾸 왜 뻘짓을 하는지... 딕셔너리를 대체하는 배열을 만들어 보았다... 데이터가 많으면 컴이 뻗어 버린다.... 딕셔너리 열심히 하자... Option Explicit Sub Haja_딕셔너리_대체() Dim vall: vall = Range([c3], [c3].End(2).End(4)) '= 영역설정 Dim Va, Vresult() '= 결과 배열과 개체순환배열 Dim Str '= 배열의 index 위치값 Dim n&, i&, r&: r = 1 '= 결과 배열과 전체배열의 반복 변수 Dim Cmax&: Cmax = 2 '= 결과 배열의 전체 열너비 크기 [j2].CurrentRegion.Clear '= 초기화 ReDim Vresult(1 To UBound(vall, 1), 1 To .. 2022. 4. 8.
[VBA] 배열내 중복된 값들을 도출하고 중복값을 구해라 배열 또는 셀의 영역 데이터 중 고유값을 구하고 중복된 값을 구하는 것은 보통 딕셔너리로 구한다. 또는 어레이리스트나 컬렉션으로 구하는게 대부분이다. 본인의 VBA 뮤즈인 준빠님께서 질문을 올렸다. 고유값을 구하고 그 중복횟수를 구하는 것은 딕셔너리로 구해왔기 때문에 너무나 당연하게 나올 코드 말고 배열로만 그 고유값과 횟수를 구하라는 숙제이다. 배열로 구할 수 있는 방법은 소스 영역을 반복할 For문과 결과값에 추가하면서 그값이 기존 결과 배열에 있는지 확인하는 For문을 구하는 다중 For문을 이용해서 비교해가며 값을 추가해야 한다. 하지만 이렇게 되었을 경우 소스 영역이 많아지면 결과값에서 비교하는 자체로 시간이 소요가 된다. 순차적으로 For문을 타는 방식이 아닌 Find나 Search처럼 해당값.. 2022. 4. 6.