현재 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에서 사용자 지정 함수를 작성하는 것과 같이 다른 곳에서 더 복잡한 작업을 수행하지 않고 와일드 카드가 아닌 대안 또는 대체 식을 단순화하는 방법을 찾지 못했습니다 .
[ITEM_CODE]=IM_PURCH_VENDOR_SUBLIST[[#All],[ITEM-CODE]]
배열 수식처럼 보입니다. 그러나 CSE가 필요하지 않습니까?