본문 바로가기

엑사남171

[기초방] VBA 100제 #84 [ 교차 테이블 만들기] 몇일전에 써봤던 IFNA(목록1, 목록2) 하게 되면 목록들이 해당영역만큼 차지하게 되는데 그걸 한줄로 바꿔서 각각의 위치에 넣어주면 된다. 물론 IFERROR로 해도 된다.. 어찌되었든...음 365-1 =HSTACK(TOCOL(IFNA(B4:B14,TRANSPOSE(D4:D7))),TOCOL(IFNA(TRANSPOSE(D4:D7),B4:B14))) 365-2 =TEXTSPLIT(TEXTJOIN("/",TRUE,TOCOL(B4:B14&","&TRANSPOSE(D4:D7)),","),",","/") VBA vtemp1 = .IfNa(Va, .Transpose(Vb)) vtemp2 = .IfNa(.Transpose(Vb), Va) vtemp1 = Split(.TextJoin(",", , vtemp1), ".. 2023. 10. 20.
[기초방] 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.
[365 함수리뷰] 간편차트 만들기 이번 차트만들기는 요즘은 그냥 365함수는 아니지만 만들어보았다. 조건부 서식탭에 보면 데이터 막대나 색조 부분이 있어서 굳이 저렇게 만들필요는 없지만 .... REPT("n",C3/5) 코드는 의외로 간단한데, REPT함수에 반복할 문자 [n]을 입력하고 반복횟수를 넣으면 되는데 본인은 그래프가 너무 길게 늘어나는게 싫어서 원래 숫자에 5을 나눠서 그래프의 길이를 임의로 줄였다.. 이렇게 하면 소문자 n 이 숫자만큼 늘어나는데 여기서 차트 영역을 되는 곳에 폰트를 Wingdings 로 변경해야 본인과 같은 느낌의 차트 모양이 나오게 되니 참조하길 바란다. 2023. 10. 20.