본문 바로가기

VBA/엑사남_기초방86

[기초방] VBA 100제 #83 [ 테이블 역순으로 출력하기 ] 사진에서 각각의 가격들이 다른건 문제가 랜덤수로 되어 있어서 그때그때 변해서 약간의 차이가 있음...저거 보기 불편한 분들은 가격을 랜덤수가 아닌 값으로 변경하길... 역순으로 출력하면 되기에 너무 어렵게 생각하지 말고 FOR문을 역으로 타면 아주 쉽게 풀 수 있는 문제이다. FOR 문에 STEP이 -1 인건 역순으로 오겠다는 소리이다. 시작은 전체영역의 행의 값부터 -1씩 줄여가면서 1까지 FOR문을 순환하겠다는 뜻이다. 365함수를 잠깐 리뷰하면 =LET( →step1, 영역지정, _range,B5:C30, →step2, 헤더와 / CHOOSEROW의 상수식을 - 붙혀서 배열에서 거꾸로 선택 VSTACK({"품목","가격"},CHOOSEROWS(_range,-SEQUENCE(ROWS(_range))).. 2023. 10. 20.
[기초방] 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.