본문 바로가기

VBA271

[365 함수리뷰] 서랍님 달력리뷰(feat. to_do List) 몇일전 수식한줄의 달력을 포스팅 한적이 있다. https://1stminokingdom.tistory.com/330 [365 함수리뷰] 달력만들기 365 함수로 달력만들기이다. 본인은 이런 비슷한 달력들을 많이 만들어보았다.. 의뢰에도 이런 비슷한 문의가 들어왔기 때문에 지저분한 코드에 비해서 어렵지않게 만들어 왔던거 같다.. 하지만 1stminokingdom.tistory.com 이녀석이 애들 장난이었다면, 어마무시한 코드를 서랍님이 공개했다. 서랍님이 올린 코드를 한번 리뷰해보도록 하겠다. =LAMBDA([month], [range_todo], [rows_todo], LET( →STEP1, 과거10년전부터 향후 10년까지 일정 추가 가능, _month, IF(ISOMITTED(month), 0, mo.. 2023. 10. 29.
[기초방] VBA 100제 #89 [ 쇼핑몰 키워드 정리하기 ] 보통 이런식의 키워드 분류를 쇼핑몰을 운영하시는 분들이 많이 사용하시고 요청도 많이 들어온다. 한달전만해도 이런 문제가 들어오면 정규식으로 패턴을 등록해서 하나하나 패턴을 모두 대조하면서 원하는 키워드를 도출하였다. 물론 코드도 지저분했지만 이젠 딱~!! 한줄이면 된다. 일단 코드 진행에 대해서 시뮬레이션을 해보자 상품명에서 키워드들을 순환하면서 변경될 키워드들로 하나씩 바꾸면서 그 결과값을 출력해야 한다. =LET(_s,B5:B30, REDUCE(_s,$D$5:$D$24, LAMBDA(_t,_old,SUBSTITUTE(_t,_old, OFFSET(_old,0,1))))) LET함수로 _s 에 [B5:B30] 영역을 넘기고, REDUCE함수에 _s를 초기값으로 주고 바꿔줄 영역을 기존 영역보다는 추가할 .. 2023. 10. 28.
[기초방] VBA 100제 #88 [ 리스트에서 해당 월 카운트하기 ] 해당 리스트에서 월별로 카운트를 해야 하는 함수이다. 이런 문제를 vba로 풀려면 행방향으로 진행하면서 각 행의 셀들을 순환하면서 각셀의 월을 구한 다음 그값의 월 대로 구분하여 카운트하면서 리스트를 모두 순환하면 된다. 각설하고 이 문제를 풀려면 이렇다. 행단위로 이동하고 그 이동한 값들을 비교하여 값을 도출하면 된다. 변수를 이용한 LET 함수를 풀면 =BYROW(C4:H53,LAMBDA(a, LET( _월10,SUM(IF(MONTH(a)=10,1,0)), _월11,SUM(IF(MONTH(a)=11,1,0)), "10월 : " &_월10 & " _ " & "11월 : " & _월11 ))) BYROW 함수로 해당 영역을 LAMBDA함수로 넘기게 되고, LET 함수로 각각의 변수에 계산된 결과값을 넘긴.. 2023. 10. 28.
[기초방] VBA 100제 #87 [ MMULT 를 이용한 효율구하기 ] [10 X 3 ] X [ 3 X 1] = [10 X 1] 행렬을 만들면 각자의 효율을 만들 수 있다. 이러한 행렬의 곱을 이해하지 못한다면 실제 행렬의 곱을 우리가 수학적으로 풀어가 듯, 그렇게 반복적으로 순환문으로 돌리면서 합을 구해야 한다. MMULT 참 멋진 녀석 아닌가 ㅋㅋ 2023. 10. 27.