아래를 매크로 VBA 코드로 어떻게 변환합니까? =INDEX(분류,일치(TRUE,ISNUMBER(검색(이름,O12)),0))
Sheet1에 검색해야 하는 열(O)이 있습니다. sheet2에 이름(이름 및 분류)으로 정의된 두 개의 열이 있습니다. Sheet1의 O열에 이름이 있으면 P열은 Sheet2 분류에 해당하는 값을 갖습니다.
Sheet1 열 O 우리 고객의 이름은 John Doe입니다.
Sheet2 이름 분류 John Doe Class A
Sheet1 열 P의 값은 Class A입니다.
도와주세요!
답변1
샘플 데이터를 사용할 수 없으므로 가정합니다.
Sheet 1
열O
, 검색할 이름입니다O2:O10
.Sheet 2
Clasification
& 가 있고 & 에Names
있습니다 .Named range
A2:A10
B2:B10
P2:P10
의 범위에 있는 결과가 필요합니다Sheet1
.
이제 먼저 Excel 수식을 VBA 코드에 할당하는 방법을 제안하고 싶습니다.
Range("P2").FormulaArray = "=IFERROR(INDEX(Clasification,MATCH(TRUE,ISNUMBER(SEARCH(Names,O2)),0)),""No Found"")"
주의.FormulaArray
이를 사용 하려면 배열(CSE) 수식이 필요합니다 .
하지만 Named Range
VBA 매크로와 함께 사용하는 동안 is/are를 선언해야 하므로 다음 코드를 Standard Module
.
Sub Formula()
Dim Clasification As Range
Dim Names As Range
Set Clasification = Sheets("Sheet2").Range("A2:A10")
Set Names = Sheets("Sheet2").Range("B2:B10")
Range("P2").FormulaArray = "=IFERROR(INDEX(Clasification,MATCH(TRUE,ISNUMBER(SEARCH(Names,O2)),0)),""No Found"")"
Range("P2:P10").FillDown
End Sub
필요에 따라 코드에서 셀 참조 및 명명된 범위를 조정합니다.