본문 바로가기

365함수14

[기초방] 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제 #77 [ 고유값 pivot ] 고유값을 Pivot 하는 문제이다. 이문제의 관건은 담당자의 고유값을 세로에서 가로로 뿌린 후 FILER함수를 이용하여 값을 구할 수 있느냐에 있다. 통상 FILTER함수는 = FILTER(배열, 조건, [못찾을때]) 이것을 VBA 식으로 표현하면 With Application V = Application.Filter(rngAll.Columns(2), rngAll.Columns(1) = rngA, "not Found")) rngA(2, 1).Resize(UBound(V, 1), 1) = V End With 이렇게 하면 될것 같지만 해당되지 않는다. FILTER함수의 부분일치값을 가져오는 ISNUMBER + SEARCH 조합으로 구하면 해결된다. For Each rngA In rngF With Applic.. 2023. 10. 17.
[365 함수리뷰] 동적으로 출력되는 테이블 본인의 365 함수 코드들은 기초방에 올리고 있기 때문에 따로 서랍님 코드를 리뷰해보려고 한다. 더보기 =LAMBDA(range, n, [op], LET( _range, range, _n, n, _op, IF(ISOMITTED(op), 1, op), _rn, TAKE(_range, , 1), _rm, DROP(_range, , 1), _u, UNIQUE(_rn), TAKE(SORT(HSTACK(_u, SUMIFS(_rm, _rn, _u)), 2, IF(_op = 1, -1, 1)), _n) ) )(G7:H90, C3) 이번 코드의 핵심은, _rn, TAKE(_range, , 1), _rm, DROP(_range, , 1), TAKE 와 DROP으로 한번은 선택해서 취하고 한번은 선택해서 버리는 코드 전개.. 2023. 10. 16.
[기초방] VBA 100제 #70 [ 구간별 값 구하기 ] 우노사설님의 강의를 리뷰한 문제이다. https://www.youtube.com/watch?v=5X_NhTJUpGM 본인의 코드 진행이 이해가 안된다면 강의를 보고 진행하는것을 추천한다. 이번 문제는 테이블에서 각 구간에 해당되는 값들의 갯수를 출력하는 문제이다. 그러기 위해서는 일단 양수라는 조건하에 테이블의 최대값을 구한 후, 그것을 CEILING_MATH 함수로 각 조건의 STEP의 배수로 재조정하여야 한다. MaxVal = .Ceiling_Math(.Max(rngAll), Step) 이렇게 구해진 값으로, 각 구간을 SEQUENCE로 분리해야 한다. 아래의 코드는 SEQUENCE함수로 구한 값을 ARRAYTOTEXT로 배열상수화 시키는 구문이다. Vlist = .ArrayToText(.Sequen.. 2023. 10. 2.