필터 및 VSTACK과 함께 부분 일치 사용

필터 및 VSTACK과 함께 부분 일치 사용

이 사이트의 제안 사항 중 일부를 사용하여 여러 워크시트에서 가져올 수 있는 다음 공식을 얻었습니다.

=FILTER(VSTACK(FRR:SOD!G3:M200),
  (VSTACK(FRR:SOD!K3:K200)<>"")*
  (VSTACK(FRR:SOD!K3:K200)="ABC XXXX"))

"ABC XXXX" 내에서 부분 일치를 필터링하는 방법이 있습니까? ABC를 위치로 생각하고 XXXX를 해당 위치의 직업/직위로 생각하십시오. ABC에 할당된 모든 사람을 새 워크시트로 끌어온 다음 직무/직위별로 필터링하고 싶습니다. 그게 가능합니까?

답변1

이를 수행하는 한 가지 방법은 다음과 같습니다.

=LET(
     α, VSTACK(FRR:SOD!G3:M200), 
     δ, INDEX(α,,5), 
     FILTER(α, (δ<>"")*(1-ISNA(XMATCH("ABC *",δ,2))),"Not Found"))

  • 함수를 사용하면 LET()변수를 정의하는 데 도움이 되며 동일한 수식을 반복하지 않고도 쉽게 읽을 수 있습니다.
  • α변수는 시트의 범위 와 시트의 VSTACK()범위로 구성된 하나에 여러 시트 데이터를 추가하는 사용으로 정의됩니다 .G3:M200FRRSOD
  • δ변수는 함수를 사용하여 반환된 배열에서 INDEX()추출하는 것으로 정의됩니다 .5thα
  • XMATCH()와일드카드 연산자와 함께 사용Asterix*Zero 는 임의 개수의 문자를 의미합니다 . 이 사용 사례에서는 위치를 사용 하고 배열의 동일한 위치에 할당된 위치로 시작하고 끝나는 ABC *위치를 확인합니다 .ABCjob/positionδ
  • 일치하는 항목이 발견되면 ISNUMBER()반환하는 데 사용할 수도 TRUE있고 동일한 작업을 수행하는 데 1-ISNA()사용할 수도 있습니다. 즉, 먼저 다음 오류를 뺀 결과를 반환 ISNA()합니다 .TRUE#N/ATRUEISNUMBER()
  • 마지막으로 FILTER()함수 내에서 래핑하여 TRUE.

노트:

• 엑셀에는와일드카드 3개수식에 사용할 수 있습니다.

  1. 별표( *) --> 0개 이상의 문자.
  2. 물음표( ?) --> 임의의 한 문자.
  3. 틸데( ~) --> 리터럴 문자( ~*), 리터럴 물음표( ~?) 또는 리터럴 물결표( ~~)에 대한 이스케이프입니다.

답변2

부분 일치의 경우에는 여러 가지 조합이 있을 것인데,,,, 아래에서 알려드리고 싶은 조합이 있습니다.

=FILTER(VSTACK(FRR:SOD!G3:M200),
  (VSTACK(FRR:SOD!K3:K200<>"")*
  ((ISNUMBER(SEARCH("NEW*", VSTACK(FRR:SOD!K3:K200)))) +
  (ISNUMBER(SEARCH("*MANAGER", VSTACK(FRR:SOD!K3:K200)))) > 0))
  • 이제 ((ISNUMBER(SEARCH("NEW*")에 대해 설명하겠습니다.
  • 여기 NEW* ,, * 에서는 와일드카드 문자가 더 많은 문자를 가정합니다.
  • NEW Delhi, NEW York, NEW Jersey 등과 같은 위치를 가정할 수 있습니다.
  • 또 다른 것은 (ISNUMBER(SEARCH("*MANAGER"" 입니다. 여기서 *MANAGER는 EDP MANAGER, SALES MANAGER 등을 가정할 수 있습니다.

주의

답변3

모든 사람의 의견에 감사드립니다. 비록 아직 조금씩 배우는 중이기 때문에 일부는 약간 복잡할 수도 있습니다. 다른 포럼의 이 공식은 제가 필요로 했던 것과 정확히 일치했으며 이해하기 쉬웠습니다.

=FILTER(VSTACK(FRR:SOD!G3:M200),LEFT(VSTACK(FRR:SOD!K3:K200),3)="ABC")

모든 도움에 감사드립니다!

관련 정보