Excel VBA - IF( & VLOOKUP( 부분 문자열로 시작) 반복

Excel VBA - IF( & VLOOKUP( 부분 문자열로 시작) 반복

놀라운 커뮤니티에 좋은 하루 보내세요.

두 배열을 반복하는 매크로를 개발하려고 합니다. 다음은 데이터 설정 방법의 예입니다.

원시 데이터는 C4:C1500에 있습니다.

$ 데이터는 D4:D1500에 있습니다.

부분 문자열 값(원래 원시 데이터에서 가져온 값)은 E4:E13에 있습니다.

원시 데이터가 구성되는 범주는 F4:F13에 있습니다.

아래는 개념 증명으로 제가 조합한 공식입니다.

=IF(VLOOKUP(" * "&E4&" * ",$C$4:$C$1500,1,0)=ERROR.TYPE(#N/A),"조사",VLOOKUP(" * "&E4&" * ", $E$4:$F$13,2,0))

이것은 한 번에 한 줄씩 작동하며, 짧은 목록의 맨 아래까지만 작동합니다(대량의 중첩된 문을 작성하지 않고). Raw 데이터를 통해 Partial 및 Category 값을 반복한 다음 Category & $별로 데이터를 분석하려고 합니다.

예: 시트1

C열(C4:C1500) D열(D4:D1500) E열(E4:E13) F열(F4:F13)
원시 데이터 $ 부분 데이터 범주
4 210324Sales.BobParr.UT 785.54 밥파 매상
5 ABCDEF.210324.판매HelenParr.TN 214.46 헬렌파르 매상
6 DashParr.WY.RR.210324 238.56 대시파 연구
7 Mgmt.NY.JackJackParr.210324 1,200.00 잭잭파 관리

시트2:

B열(B4:B13) C열(C4:C13)
범주 총 $
4 매상 1,000.00
5 연구 238.56
6 관리 1,200.00

거기에서 또 다른 VLOOKUP(을(를) 수행하여 Sheet2에 있는 비용을 SUM(으로 계산합니다.

테스트 공식 정리에 대한 모든 제안에 열려 있으며 VBA에 대한 모든 지원에 감사드립니다.

감사합니다.

리처드 VO

답변1

VBA를 사용할 필요는 없습니다. Excel 365를 사용하는 경우 FILTER, CHOOSECOLS 및 SUM 함수를 결합하여 원하는 결과를 얻을 수 있습니다. 다음 공식을 적용하세요.

=SUM(CHOOSECOLS(FILTER(Sheet1!$C$2:$F$5,Sheet1!$F$2:$F$5=Sheet2!$B3),{2}))

수식을 아래로 가져와 다른 셀을 채웁니다.

관련 정보