본문 바로가기

Application.Index2

[VBA] 등급별 랜덤 순번과 전체순번을 구하라 등급은 A,B,C,D,E 총 5 등급이 있다. 등급을 나누는 조건은 또 있는데 5등급을 임의로 나누어서 셀에 뿌려 놓았다. 영역 [F1:G6]는 전체 영역에서 각 등급의 구성갯수를 엑셀의 Countif를 통해서 구하였다. 랜덤값을 구해야 함으로 Application.Randbetween(1 to 마지막값)을 구해야 한다. 각 등급별로 마지막값이 다르므로 전체영역을 순환하면서 등급을 확인 후 해당 등급의 구성값을 끌어와서 랜덤값을 도출하여야 한다. 도출된 값이 기존에 있던 값인지 결과배열(임시배열)에서 찾아본 후 값이 정상적으로 도출이 된다면 값이 중복 되었다는 것이고 값이 "Error"로 도출이 된다면 중복이 되지 않았다는 뜻이므로 셀에 출력 후 다음을 위해 중복 되지 않은 값을 배열에 담아주는 방식으로.. 2022. 4. 12.
[VBA] ArrayList 로 배열 고유값과 중복 횟수 구하기 https://1stminokingdom.tistory.com/84 [VBA] 배열을 정렬해라(feat. 버블정렬) https://1stminokingdom.tistory.com/83 [VBA] 배열내 중복된 값들을 도출하고 중복값을 구해라 배열 또는 셀의 영역 데이터 중 고유값을 구하고 중복된 값을 구하는 것은 보통 딕셔너리로 구한다. 또는 어레 1stminokingdom.tistory.com 이전 글에는 배열의 고유값을 구한 뒤에 버블정렬을 통한 배열의 정렬 방법을 알아보았다. 버블정렬은 글에서도 서술했듯이 쉽지만 비효율적인 코드이다. 단적으로 정렬을 위해 고유값끼리의 비교를 하기 위해 For문을 순환하게 되는데 For문이 다중 포문이기 때문에 처리 속도가 현저히 떨어진다. 본 코드는 ArrayLis.. 2022. 4. 8.