Excel 2013에서 문자열이 A 열의 문자열과 일치하는 행에서 B 열의 값을 찾고 싶습니다. 복잡한 것은 A 열의 문자열이 원하는 값 문자열보다 짧아도 허용된다는 것입니다. 예:
Column A Column B
ABCD- Result1
EF Result2
BCD Result3
이제 반환해야 하는 문자열의 예는 다음과 같습니다.
"Result1": "ABCD-", "ABCD-EFG", "ABCD-H"
"Result2": "EF", "EFG", "EFGHIIJKL"
"Result3": "BCD", "BCDXY"
"ABCD"는 어떤 결과도 반환해서는 안 됩니다.
검색된 문자열이 C1 셀에 있다고 가정합니다.
매크로를 사용해야 하나요? 아니면 이에 대한 공식이 있나요?
UPD: 실제로 다른 시트의 열에 위치하게 될 여러 검색 문자열이 있으며 시작 부분에는 와일드카드가 없습니다. 내가 찾고 있는 값은 검색된 문자열이 있는 열 옆의 열에 배치될 수 있습니다.
UPD2: Sheet1의 열 A 및 열 B 내용과 아래 Sheet2의 내용을 가정합니다.
SoughtString ResultFound
ABCD- Result1
EF Result2
BCD Result3
BCDXY Result3
EFG Result2
ABCD-EFG Result1
EFGHIIJKL Result2
ABCD-H Result1
ABCD No match
셀 B2에 허용된 답변에서 약간 수정된 배열 수식을 복사해 두었습니다.
=IFERROR(INDEX(Sheet1!B$2:B$4;MATCH(1;COUNTIF(A2;Sheet1!A$2:A$4&"*")*(Sheet1!A$2:A$4<>"");0));"No match")
답변1
2~10행에 데이터가 있다고 가정하면 이 "배열 수식"을 사용할 수 있습니다.
=IFERROR(INDEX(B$2:B$10,MATCH(1,COUNTIF(C1,A$2:A$10&"*")*(A$2:A$10<>""),0)),"No match")
CTRL+ SHIFT+ 로 확인됨ENTER
답변2
C1이 어떤 역할을 하는지는 확실하지 않습니다. 검색된 문자열이 이미 열에 존재하는 경우 이를 Sheet2의 Col A로 표시하는 것으로 사용할 수 있습니다. 다른 곳에 있는 경우 다른 목록의 관련 셀을 참조하여 Col A를 작성할 수 있습니다. 예를 들어 목록이 Z열에 있고 2행부터 시작하면 A2는 가 되며 =Z2
해당 수식을 A열 아래로 복사하여 필요한 것보다 더 많은 셀을 미리 채울 수 있습니다(필요할 때까지 공백으로 유지됨).
검색된 문자열 목록이 한 번에 하나의 새 항목을 생성하는 경우 두 목록 중 하나(Col Z 또는 Col A)의 다음 위치에 새 항목을 배치할 수 있습니다. 새 항목이 C1에 들어가야 하고 각 새 항목이 이전 항목을 대체하는 경우 C1 항목에서 목록을 작성하려면 매크로 또는 VBA 프로그램이 필요합니다.
검색된 문자열이 이러한 방법 중 하나를 통해 Col A의 목록에 있는 지점부터 시작하여 Col B로 이동합니다. Result1이 B2에 있다고 가정합니다. B2의 공식은 다음과 같습니다.
=IF(ISERROR(FIND(Sheet1!A2,A2)),"NO MATCH",IF(FIND(Sheet1!A2,A2)=1,A2,"NO MATCH"))
필요한 만큼 수식을 B열 아래로 복사하세요. 임의의 많은 수의 항목으로 Col B를 미리 채울 수 있으며 결과를 생성하는 Col A의 관련 셀에 값이 있을 때까지 이러한 항목은 공백으로 유지됩니다.