본문 바로가기

VBA/엑사남_기초방93

[기초방] VBA 100제 #82 [ 테이블 정렬 + 합계구하기 ] 표를 정렬하고 합계를 구하는 문제이다. 이문제는 365 함수의 MAKEARRAY + 테이블 정렬을 복습하는 차원으로 만들었다. =HSTACK( MAKEARRAY(ROWS($B$4:$F$13),COLUMNS($B$4:$F$13), LAMBDA(r,c,INDEX(SORT(INDEX($B$4:$F$13,r,),,,1),c))), BYROW(B4:F13,LAMBDA(s,SUM(s))) ) 이문제의 관건은 역시나 가로행의 정렬이었는데 시훈아빠님께서 정말 놀라운 꿀팁으로 풀어버렸다. 코드는 이렇다. SMALL 함수로 정렬을 하는 TRICK을 선보였다...지림 시훈 아빠님의 코드를 참고하여 본인 코드를 공개하려고 한다 하나는 셀기반으로 출력을 한거구 또 하나는 TEXTSPLIT + 배열상수 방식을 VBA로 풀어낸 것.. 2023. 10. 20.
[기초방] VBA 100제 #81 [ 테이블 형태 변경하기 ] =HSTACK(TOCOL(IFERROR(B4:B8,C3:G3)),TOCOL(IFERROR(C3:G3,B4:B8)),TOCOL(C4:G8)) 동일 =HSTACK(TOCOL(IFNA(B4:B8,C3:G3)),TOCOL(IFNA(C3:G3,B4:B8)),TOCOL(C4:G8)) 같은 크루인 준빠님이 올려주신 VBA는 이렇다. 순차적으로 하나씩 배열에 담아서 행에 뿌려주고를 반복하는 형태의 코드이다. 성격처럼 깔끔하다. ARRRAYTOTEXT를 이용한 함수식으로 완성된 VBA코드는 이렇다 흠.... VBA짜지 마세요!!! 365에 양보하세요 2023. 10. 19.
[기초방] VBA 100제 #80 [ 테이블교차하기 ] 우선 이 문제를 낸 의도는 MAKEARRAY를 지난시간에 이어서 연습보려고 만들었다. 역시 서랍님은 바로 만들어 보였다...역시 ㄷㄷ 우선 이렇게 교차해야 되고 똑딱똑딱 토글형태로 TRUE, FALSE가 반복된다면 Boolean으로 코드가 간단하고 쉬어진다. Dim bln As Boolean Do bln = Not bln Loop 이렇게 하면 루프를 돌면서 한번은 TRUE 한번은 FALSE 값을 가지게 된다. 그러면 우리는 TRUE / FALSE에 값들을 달리해서 구문을 풀어내면 된다. r = r key = IIf(bln = False, vA, vB) r = IIf(bln = False, r + 1, r) TRUE일때는 왼쪽 표의 값 / FALSE일때는 오른쪽 표의 값 TRUE일때는 왼쪽 표의 새로운 행.. 2023. 10. 19.
[기초방] 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.