본문 바로가기

VBA271

[365리뷰] 칸트차트 만들기[feat. 서랍님] https://www.youtube.com/watch?v=SVO32ur-69I 서랍님 칸트차트 리뷰이다. =LAMBDA(테이블,시작일,일정, LET( →step1, "람다함수를 통해서 테이블 시작일 일정의 값을 받는다", 기간,SEQUENCE(1,일정,시작일), →step2, "함수를 만들어서 각 행의 TRUE 값을 반환받는다", 함수,LAMBDA(r,IF((INDEX(테이블,r+1,2)=기간),1,"")), →step3, "반복할 행값을 구한다", 테이블갯수, ROWS(테이블)-1, →step4, "각 행을 반복하며 스텝2에서 만들어진 함수값의 반환값을 REDUCE의 결과값으로 호출한다", x, REDUCE("",SEQUENCE(테이블갯수), LAMBDA(a,v,VSTACK(a,함수(v)))), →st.. 2024. 2. 10.
[기초방] VBA 100제 #91 [ 표에서 다중검색하기 ] 우노 사설님의 강의에서 문제를 가져와 보았다. https://www.youtube.com/watch?v=16_mEL_B6lM&t=615s 전통적인(?) 방법은 이러한 순서로 진행하게 될것이다. 1. rngH [A4:H4]를 순환하면서 지역 RANGE("K4")에서 해당 지역이 포함되어 있는지를 확인후에 2. 해당되는 지역이 있다면 그 지역의 데이터를 순환하면서 CheckStr을 호출하여 카운트된 수를 반환하여 그 합을 구하는 방식이다.For Each rngQ In rngH If InStr(rngR, rngQ) > 0 Then Set rngY = rngQ.Offset(1) NumCnt = NumCnt + CheckStr(Range(rngY, rngY.End(4)), rngC.Value) End If Nex.. 2024. 1. 7.
[365 함수리뷰] 영역에서 중복되지 않은 5개 뽑아내기 다음과 같은 리스트가 주어졌을 때, 중복되지 않은 랜덤한 값 5개를 뽑아내는 문제이다. 랜덤한 값을 뽑아내는 문제는 RAND 함수를 사용하면 되는데, 365에서는 RANDARRAY 함수로 야무지게 뽑아 낼 수 있어 소개하려고 한다. 우선 각 리스트에 랜덤한 값을 부여하는 코드는 이렇다. =LET( _tbl,HSTACK(RANDARRAY(COUNTA(C3:D9),1,0,1,0), TOCOL(C3:D9)), _tbl ) 코드 설명을 하면 리스트 영역만큼 행의 값을 주고, 열값은 1, 최소값 0, 최대값 1인 영역에 정수가 아닌 소수로 구성된 영역이 만들어 지고, 그 옆의 열에는 리스트 값을 한줄로 길게 나열하라는 의미이다. 이렇게 주어진 영역을 LET 함수에서 _tbl로 설정한다. 주어진 랜덤한값에서 5개의.. 2023. 11. 8.
[기초방] VBA 100제 #90 [ 부분합 구하기 ] 부분합을 구하는 문제이다. https://1stminokingdom.tistory.com/310 [VBA] 대량 데이터에서 부분합구하기 부분합에 대한 고민이다. 23000건 정도의 데이터이니 이걸 우리가 아는 부분합으로 구한다면 셀 사이사이를 부분합이 들어가야 하기 때문에 분명히 에러가 발생할 것이다. 질문자의 고민도 그런 1stminokingdom.tistory.com 몇일전에 이렇게 부분합을 구한적이 있었다. 365를 도입하면서 본인이 알고 있던 모든 로직들이 변화고 있다. 물론 365가 없다고 하면 어쩔 수 없지만...그때는 만일 의뢰를 맡긴다면 돈을 많이 받을테야..ㅋㅋㅋㅋ 암튼 365를 하나씩 보면서 정말 엑셀이 막강해지고 있음을 느낀다. 365로 함수도 그렇고 본인 vba 코드도 그러고 방식은.. 2023. 11. 1.