본문 바로가기

VBA/엑사남_기초방86

[기초방] VBA 100제 #87 [ MMULT 를 이용한 효율구하기 ] [10 X 3 ] X [ 3 X 1] = [10 X 1] 행렬을 만들면 각자의 효율을 만들 수 있다. 이러한 행렬의 곱을 이해하지 못한다면 실제 행렬의 곱을 우리가 수학적으로 풀어가 듯, 그렇게 반복적으로 순환문으로 돌리면서 합을 구해야 한다. MMULT 참 멋진 녀석 아닌가 ㅋㅋ 2023. 10. 27.
[기초방] VBA 100제 #86 [ MMULT 를 이용한 행렬만들기 ] 이문제는 사실 SUMIFS로 풀면된다. SUMIFS의 조건식에 *&조건&* 이렇게 와일드카드를 이용해서 조건이 포함된 셀의 값을 가져오게 된다. 365 함수를 계속 풀고 있었기 때문에 이렇게 접근을 안하겠지 했지만.. 역시 걸렸다....ㅜ.,ㅡ 이번 문제를 풀면서 MATRIX[행렬]에 대해서 왜 중요한지 알게 된 시간이다. 서랍님은 참 사고의 깊이가 넘사벽임을 또한번 느꼈다. 이런 대화 너무 좋다...크윽 솔직하게 이게 왜 SUMIF 같은 역할을 하게 되는지 행렬의 곱 이야기가 나오기 전까지 전혀 이해를 못하고 있었다. =MMULT(--ISNUMBER(SEARCH(G4:G8,TRANSPOSE(C4:C54))),D4:D54) 1. SEARCH(G4:G8,TRANSPOSE(C4:C54)) 2. --ISNUM.. 2023. 10. 26.
[기초방] VBA 100제 #85 [ 테이블 pivot] 횡으로 된 테이블을 종으로 변환하는 문제이다. VBA로만 할때는 이런 문제들은 거의 안하다가 최근에 365랑 겸하면서 자꾸 올리게 되어서 피로감을 느낄 수도 있으리라 생각한다. 보통은 이렇게 데이터 전처리를 하거나 해서 VBA로 전처리된 데이터를 가공하는 방법으로 하게 될것이다. 본인 역시도 그러고 있고...해서 이번 리뷰는 전통적인 방식과 vba에서 365 함수식을 어떻게 끌어와서 사용하는지를 리뷰해보려고 한다. 첫번째는 다중 FOR문을 통해서 풀어보았다 행방향과 열방향으로 순환하면서 T열의 마지막행 다음부터 조건에 맞는 데이터를 쌓아 올리는 전통적인 방식이다. 두번째 방식은 365 함수식을 STR 변수로 하나씩 누적해가면서 함수식을 완성해 가는 방식이다. 구분기호 같은 것들은 & + "" 로 감싸줘야.. 2023. 10. 23.
[기초방] 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.