본문 바로가기

VBA/엑사남_기초방86

[기초방] 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.
[기초방] VBA 100제 #90 [ 부분합 구하기 ] 부분합을 구하는 문제이다. https://1stminokingdom.tistory.com/310 [VBA] 대량 데이터에서 부분합구하기 부분합에 대한 고민이다. 23000건 정도의 데이터이니 이걸 우리가 아는 부분합으로 구한다면 셀 사이사이를 부분합이 들어가야 하기 때문에 분명히 에러가 발생할 것이다. 질문자의 고민도 그런 1stminokingdom.tistory.com 몇일전에 이렇게 부분합을 구한적이 있었다. 365를 도입하면서 본인이 알고 있던 모든 로직들이 변화고 있다. 물론 365가 없다고 하면 어쩔 수 없지만...그때는 만일 의뢰를 맡긴다면 돈을 많이 받을테야..ㅋㅋㅋㅋ 암튼 365를 하나씩 보면서 정말 엑셀이 막강해지고 있음을 느낀다. 365로 함수도 그렇고 본인 vba 코드도 그러고 방식은.. 2023. 11. 1.
[기초방] 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.