본문 바로가기

vba89

[365함수] 병합풀기도 한방에 고고 예전 vba 포스팅에서 많이 했던 병합된 셀을 푸는 문제를 365 함수로 구성해 보았다. TEXTSPLIT함수로 해당 행을 줄바꿈 [ CHAR(10) ] 을 구분자로 하여 텍스트를 분리한 후 그것들을 병렬로 배치한 후 하나씩 행방향으로 쌓아올리면 된다. =LAMBDA(tbl, DROP( REDUCE("",tbl, LAMBDA(a,b, VSTACK(a, HSTACK(TEXTSPLIT(b,,CHAR(10)),TEXTSPLIT(OFFSET(b,,1),,CHAR(10)) )))) ,1) )(E3:E6) 병합셀을 풀 영역의 전체가 아닌 한 열만 잡은 후 REDUCE함수로 전달된 행을 HSTACK(TEXTSPLIT(b,,CHAR(10)),TEXTSPLIT(OFFSET(b,,1),,CHAR(10))) HSTACK으로.. 2024. 2. 17.
[기초방] VBA 100제 #90 [ 부분합 구하기 ] 부분합을 구하는 문제이다. https://1stminokingdom.tistory.com/310 [VBA] 대량 데이터에서 부분합구하기 부분합에 대한 고민이다. 23000건 정도의 데이터이니 이걸 우리가 아는 부분합으로 구한다면 셀 사이사이를 부분합이 들어가야 하기 때문에 분명히 에러가 발생할 것이다. 질문자의 고민도 그런 1stminokingdom.tistory.com 몇일전에 이렇게 부분합을 구한적이 있었다. 365를 도입하면서 본인이 알고 있던 모든 로직들이 변화고 있다. 물론 365가 없다고 하면 어쩔 수 없지만...그때는 만일 의뢰를 맡긴다면 돈을 많이 받을테야..ㅋㅋㅋㅋ 암튼 365를 하나씩 보면서 정말 엑셀이 막강해지고 있음을 느낀다. 365로 함수도 그렇고 본인 vba 코드도 그러고 방식은.. 2023. 11. 1.
[기초방] VBA 100제 #85 [ 테이블 pivot] 횡으로 된 테이블을 종으로 변환하는 문제이다. VBA로만 할때는 이런 문제들은 거의 안하다가 최근에 365랑 겸하면서 자꾸 올리게 되어서 피로감을 느낄 수도 있으리라 생각한다. 보통은 이렇게 데이터 전처리를 하거나 해서 VBA로 전처리된 데이터를 가공하는 방법으로 하게 될것이다. 본인 역시도 그러고 있고...해서 이번 리뷰는 전통적인 방식과 vba에서 365 함수식을 어떻게 끌어와서 사용하는지를 리뷰해보려고 한다. 첫번째는 다중 FOR문을 통해서 풀어보았다 행방향과 열방향으로 순환하면서 T열의 마지막행 다음부터 조건에 맞는 데이터를 쌓아 올리는 전통적인 방식이다. 두번째 방식은 365 함수식을 STR 변수로 하나씩 누적해가면서 함수식을 완성해 가는 방식이다. 구분기호 같은 것들은 & + "" 로 감싸줘야.. 2023. 10. 23.
[한글자동화] 엑셀 문단을 한글표에 정리하기 오늘 해볼것은 엑셀의 문장들을 한글에서 문단 제목과 문장을 일정한 표에 담는 자동화를 해보려고 한다. 아직은 한글자동화라 보기보다는 엑셀 값들을 한글에 찍는 수준인데, 본인도 이번 기회에 한글매크로에 대해서 정리하고 있으니, 한글의 미주나 각주 또는 누름틀을 이용한 한글 고유의 매크로를 여러 방법으로 구현하여 이글을 읽는, 또는 어떤 필요에 의해서 본인의 글을 찾아보는 이들에게 더 큰 만족과 기쁨을 주려고 한다. 자 이런 글이 있을 때 우리 생각해야 한다. 1. 전체 영역을 어떻게 잡을 건지 2. 전체 영역을 순환하면서 어떻게 엑셀의 내용을 한글로 가져올 것인지 3. 예외 처리에 대해서 어떻게 처리할 것인지 1번 전체 영역을 본인은 Set rngAll = Range([b1], Cells(rows.Coun.. 2023. 9. 7.