본문 바로가기

엑사남180

[기초방] 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.
[365 함수리뷰] 각행에서 숫자들만 뽑아서 출력하기 서랍님의 문제이다.. 각행에서 숫자만 뽑아서 나열하는것이다. VBA로 하면 정규식으로 뽑았을 것이다. 최근에도 비슷한 문제를 다룬적이 있어서 그것에 대해서 리뷰는 하지 않겠다. 행 단위로 움직이기 때문에 BYROW 함수를 만지작 거릴수도 있으나, BYROW함수는 배열을 인자로 받아서 하나의 결과값만을 도출한다. 가령 각셀에 값들을 출력하는 문제가 아니라 한셀에 콤마 또는 구분자로 연결된 식의 문제이면 BYROW를 사용하여도 된다. 이버네 서랍님은 영역을 순환하는 함수중 기초방77번에서 다룬 REDUCE함수를 사용하여 문제를 풀었는데, 그 코드에 대해서 리뷰를 해보려면 이렇다. =LET( →step1, 전체영역설정, _r, B4:B6, →step2, 대분류 LAMBDA설정, _f, LAMBDA(x, →st.. 2023. 10. 26.