전체 글 99

[엑셀 VBA] 숫자데이터의 구간별 빈도 빠르게 산출하기

이 매크로는 숫자데이터들의 구간별 빈도를 빠르게 산출하는 매크로이다. 각종 통계 데이터의 분포를 빠르게 살펴보고 보고서로 작성할 때 유용한 매크로이다. 사용법은 간단하다. 1) 데이터의 범위를 지정하고, 2) 매크로를 실행한 다음, 3) 구간값을 띄어쓰기로 입력하면 된다. 3) 단계에 대한 부연을 하자면 다음과 같다. 가령 내가 가진 연령 데이터가 최소 15세부터 최대 67세까지 있다고 하자.(매크로를 실행하면 범위를 알려준다.) 이에 대해 1) 20세 미만, 2) 20세 이상 40세 미만, 3) 40세 이상 60세 미만, 4) 60세 이상 4개 구간으로 구분하여 빈도를 산출하고자 한다면. 입력창에 0 20 40 60 100(60보다 큰 수이면 된다.)을 입력하면 된다. 일단 코드만 먼저 제시하고 추후에..

VBA Macro/VBA Excel 2021.01.26

[엑셀 VBA] 가능한 모든 조합 나열하기 (응용하기)

S Y N O P S I S #모든 조합 뽑아내기2 구버전 에디터를 쓰다가 작성한 내용이 모두 날아갔다..(깊은 한숨..) 지난 포스팅(링크(새창))에 문의해주신 분에 대한 답으로 조합을 산출하는 매크로를 응용하는 코드를 작성해보았다. 문의내용의 요지는, 'n개의 집단 중에서 임의의 r개의 집단을 뽑는 nCr개의 조합을 산출하고, 각각의 조합에 대해 다시 하위요소들의 조합을 열거하는 것'이다. 예컨대, 4개의 집단(커피, 사이즈, 샷추가, 얼음추가) 중에서 2개의 집단을 뽑아내는 4C2개(6개)의 조합에 대해 모든 조합을 열거한다. 여기서 사용자가 임의로 변경해주어야 하는 부분은 2가지이다. 1) 전체 영역(여기서 n이 결정된다.), 2) 이 중에서 선정할 조합의 개수(여기서 r을 결정한다.) 참고로 조..

VBA Macro/VBA Excel 2021.01.25

[Javascript] 웹페이지 크롤링 및 엑셀로 출력하기(주식 5분 간격 데이터)

S Y N O P S I S #주식 데이터 크롤링하기 대상 페이지 데이터가 JSON 구조여서 엑셀로 작업하기에는 까다로워 자바스크립트로 구현해보았다. 자바스크립트에 익숙하지 않아 기록용으로 남겨둔다. 여기서 예제로 사용된 데이터는 Investing.com의 주식시장 데이터이다. 코드를 실행하면 스크립트 파일이 있는 폴더에 엑셀 파일이 생성된다. 스크립트 실행을 위해 코드 두서에 제시한 라이브러리 설치가 요구된다. 실행 결과 JS Code // npm install xmlhttprequest // npm install xlsx // time unit // 1min = 60sec // 1hour = 60min = 3600sec // 1d = 24hour = 86400sec // 여기서 시간은 로컬시간을 의미..

Javascript 2020.09.19

[엑셀 VBA] 가능한 모든 조합 나열하기

개인적으로 필요해서 SPSS의 집단별 통계 기능을 엑셀로 만들고 있는 중이다. 이 매크로는 그 과정의 시작 단계라 할 수 있겠다. 집단별 변수값에 따라 만들 수 있는 모든 조합을 나열한다. 예를 들어, 성별 변수가 남/여, 지역 변수가 서울/수도권/비수도권으로 구분되어 있다면, 남-서울, 남-수도권, 남-비수도권, 여-서울, 여-수도권, 여-비수도권 항목을 모두 나열하는 기능이다. 사용방법: 1) 조합을 산출할 영역을 지정한다. 2) 매크로를 실행한다. 3) 끝 코딩은 공부하는 차원에서 컬렉션을 사용했는데, 그냥 배열변수를 써도 무방하다. 매크로 Output VBA Code Option Explicit Option Base 1 Sub every_case() Dim oCol() As New Collecti..

VBA Macro/VBA Excel 2020.05.18

[엑셀 VBA] 두 단어의 일치도(%) 산출 매크로 #2 (일반화된 방법)

S Y N O P S I S #두 단어의 일치도(%) 산출하기 기존 포스팅(링크)의 한계점을 보완한 매크로이다. 일치도 산출 매크로를 사용자정의 함수로 정의하고, 2개의 셀을 입력받아 일치도를 산출하도록 했다. 기존 포스팅과 마찬가지로 연속된 글자일 경우에만 산출한다. 작동방식: 아래 화면과 같이 단어목록1과 단어목록2를 순차적으로 비교하여 C열에 일치도를 산출한다. 매크로 Output VBA Code Option Explicit Sub max_common_text() Dim lastRow As Long Dim k As Long With ActiveSheet.UsedRange lastRow = .Row + .Rows.Count - 1 '마지막 행 번호 End With For k = 2 To lastRow..

VBA Macro/VBA Excel 2020.05.12