본문 바로가기

엑사남172

[기초방] VBA 100제 #79 [ 로또번호 정렬하기 ] 결합되어 있는 로또번호를 풀어서 각 사람의 로또 번호를 정렬하는 구문이다. 이 문제를 해결하기 위해서는 2가지를 알고 있어야 한다. 1. 문제에서는 숫자들이 문자열로 조합이 되어 있기 때문에 저상태에서 SPLIT를 하게 되면 숫자들이 문자화 되어서 정렬을 하게 될경우, 숫자가 아닌 문자로 인식하기에 문자열 정렬이 된다 rngX.Resize(1, 7).NumberFormatLocal = "G/표준" rngX.Resize(1, 7).Value = rngX.Resize(1, 7).Value 영역을 선택 후 초기화 한후 다시 VALUE값으로 씌어주면 된다. 두번째는 행단위 정렬이다. rngX(1, 2).Resize(1, 6).Sort rngX(1, 2), Orientation:=2 이 두 구문을 모를 경우 문제.. 2023. 10. 19.
[기초방] VBA 100제 #78 [ 열선택하여 조건에 맞는값 출력 ] 원본테이블에서 일부열을 선택 후 조건에 맞는 값을 도출하는 문제이다. 이런 문제에 FILTER함수가 너무 특화되어 있기 때문에 이러한 문제는 365 사용자라면 VBA까지 들어오지 않을 것같다. 단 한줄.... =SORT(FILTER(FILTER(A4:F80,F4:F80>J3),{0,1,0,0,1,0}),2) 물론 이중 FILTER대신 CHOOSECOLS를 사용해도 된다. 여하튼 이번 문제의 핵심은 아래 구문인데, 이해가 잘 안되시는 분은 본인의 포스팅 중 배열 슬라이싱에 대해서 한번 더 짚고 오길 바란다. https://1stminokingdom.tistory.com/153 [VBA] 배열 슬라이싱(feat. 배열맛집) 오늘은 배열 슬라이싱에 관해서 알아보자. 본인이 쓴글에 간간히 배열 슬라이싱에 관해서.. 2023. 10. 19.
[365 함수리뷰] 해당기간의 [월]을 표시 이번에 리뷰해볼 수식은 서랍님이 엑사남 방에 올려주신 시작일과 종료일사이에 해당하는 월을 O으로 표기하는 수식을 리뷰해 보려고 한다. 시작일과 종료일의 날짜의 차이에 +1을 하는 이유는 시작일 : 2016-03-25 종료일 : 2023-06-05 라고 할때, 2023 - 2016의 차는 7이지만 실제로는 8부터이기 때문에 모든 날짜 계산에 +1을 해야한다. _day_list, UNIQUE(EOMONTH(SEQUENCE(_end - _start + 1, , _start), -1) + 1), 두기간 사이의 날짜를 구해서 그 날짜들의 EOMONTH(날짜 , -1)를 구하면 전월의 마지막이 나오게 되는데 그 값의 +1을 하게되면 결국 해당월의 처음을 구할 수 있고 그 값들의 고유값을 구하게 되면 각 해당 월에 .. 2023. 10. 19.
[365 함수리뷰] PIVOT 구현하기 서랍님의 코드 리뷰이다. 더보기 LAMBDA(range, TRANSPOSE( IFERROR(HSTACK(UNIQUE(CHOOSECOLS(range, 1)), DROP(REDUCE("", UNIQUE(CHOOSECOLS(range, 1)), LAMBDA(acc, val, VSTACK(acc, TRANSPOSE(FILTER(CHOOSECOLS(range, 2), val = CHOOSECOLS(range, 1)))))), 1)), "") ) )(A4:B49) * 서랍님 수식 리뷰 1. LAMBDA // 함수선언 범위는 9행의 (A4:B49) 2. TRANSPOSE // 행렬 변환 3. IFERROR(...) // 에러처리 HSTACK(이름,담당구역 ) // 이름과 담당구역을 수평으로 나열 UNIQUE(CHOO.. 2023. 10. 18.