Excel : 와일드 카드 일치가없는 MATCH () 수식


2

현재 MATCH()Excel 2016 수식 열에서 다음을 사용합니다 .

= MATCH( [@[ITEM_CODE]], IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]], 0 )

결과는 본질적으로 외래 키입니다. 현재 행을 다른 테이블의 일치하는 행과 연관시키기 위해 INDEX()또는 OFFSET()식이 있는 다른 열에서 사용됩니다 .

일부 조회 값은 특수 와일드 카드 문자를 포함하여, 문장 부호를 포함 *, ?하고 ~. 의도하지 않은 일치가 발생합니다. 실제 예는 item code *XA1인데, 실수로 1SC0021REXA1다른 테이블의 항목 코드와 일치 합니다.

위 예제의 현재 솔루션은 다음과 같습니다.

= MATCH(
SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( [@[ITEM_CODE]], "~", "~~" ), "*", "~*" ), "?", "~?" ),
IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]],
0
)

내가 싫어하는 것 INDEX(MATCH())표현을 작성할 때 잊어 버리기 쉽고 , 잘못되기 쉬우 며 (순서가 중요 함), 평범하고 어색하고 읽기가 어렵습니다. 그러나 MATCH()VBA에서 사용자 지정 함수를 작성하는 것과 같이 다른 곳에서 더 복잡한 작업을 수행하지 않고 와일드 카드가 아닌 대안 또는 대체 식을 단순화하는 방법을 찾지 못했습니다 .

답변:


2

집계를 사용할 수 있습니다.

=AGGREGATE(15,6,(ROW(IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]])-MIN(ROW(IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]]))+1)/(IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]]=[@[ITEM_CODE]]),1)

여기에 이미지 설명을 입력하십시오

또는이 배열 버전의 MATCH를 사용할 수 있습니다.

=MATCH(TRUE,[ITEM_CODE]=IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]],0)

배열 수식이므로 편집 모드를 종료 할 때 Ctrl-Shift-Enter를 사용하여 확인해야합니다.

여기에 이미지 설명을 입력하십시오

이것은 두 번째와 동일하지만 CSE가 필요하지 않습니다.

=MATCH(TRUE,INDEX([ITEM_CODE]=IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]],),0)

세 번째 표현에서는 [ITEM_CODE]=IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]]배열 수식처럼 보입니다. 그러나 CSE가 필요하지 않습니까?
MetaEd

첫 번째와 세 번째는 모두 배열 유형 수식이지만 CSE가 필요하지 않습니다. 그것들은 기본 배열 공식입니다. 그 중 몇 가지가 있습니다. SUMPRODUCT, IRR, ... 및 기타 몇 가지.
Scott Craner

Microsoft 문서에서 어떤 종류의 배열 수식 컨텍스트를 만드는 함수를 찾을 수 있는지 알고 있습니까?
MetaEd

아뇨, 죄송합니다 나는 그것들을 유기적으로 배웠다.
Scott Craner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.