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