본문 바로가기
VBA/엑사남_기초방

[기초방] VBA 100제 #84 [ 교차 테이블 만들기]

by 일등미노왕국 2023. 10. 20.

몇일전에 써봤던 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), ",")              
vtemp2 = Split(.TextJoin(",", , vtemp2), ",")

 

뭔가 달라보이지만 결국은 목록을 만든후 그것을 일차원 배열로 만든 후  출력하게 되는 것이다.

전통적인 방법은 반복문을 통해서 하나하나 찍어줘야 하지만 그런 코드는 굳이 본인이 안써도 이정도 과제물까지 왔다면 다 해내리라 본다.

 

 

함수 마인드로 VBA를 푸는 것이 아직은 익숙지 않지만 365함수랑 결합하는 것에 관해서는 너무나 찬성하기에 오늘도 재밌게 코딩을 한다..

 

 

본인의 코드가 안된다고 하는 분들은 뒤돌아 나의 엑셀이 365가 아님에 눈물 훔치길.....

 

기초방84.xlsm
0.02MB

댓글