Excel에서 테이블로 식별되지 않는 원시 데이터를 사용하는 워크시트가 있고(즉, 인접 셀에 값을 명백하게 입력) 워크시트의 다른 부분에는 해당 데이터를 조회하는 수식이 있습니다.
VLOOKUP(D$1, Config!$C$4:$E$8,2,FALSE)
자동 서식 지정 및 자동 테이블 확장과 같은 추가 기능을 얻기 위해 원시 데이터를 테이블(Ctrl-T)로 선언하기 전까지는 모든 것이 완벽하게 진행되었습니다.
테이블이 선언되면 검색 영역을 셀 참조( Config!$C$4:$E$8
)로 참조하든 새 테이블 이름(이름 관리자를 통해 수정됨)으로 참조하든 상관없이 내 모든 수식은 해당 테이블에서 #N/A를 찾습니다.
단서(가치가 무엇인지 모르겠습니다) 조회 키( D$1
내 수식에서)와 데이터 키(의 가장 왼쪽 열 Config!$C$4:$E$8
)가 숫자(예: 값 2015
)라는 것입니다. Excel은 테이블 내부에서 텍스트 조회를 사용하고 2015
(테이블에서)와 "2015"
(from D$1
)을 일치시키지 못하는 것 같습니다. 이것은 단지 단서일 뿐이므로 제가 틀렸을 수도 있습니다.
공식을 깨지 않고 표(자동 확장이 정말 유용함)를 사용하려면 어떻게 해야 하나요?
편집하다 :조회 키( D$1
)가 테이블의 일부가 되기 시작하면 문제가 발생합니다. 이제 2015년은 수식에서 "2015"로 표시됩니다.
답변1
sicarius92가 자신의 의견에서 지적했듯이 변경된 데이터 유형을 '캐스팅'하여 처리하는 것이 D$1 + 0
저에게 효과적입니다.
그러나 이는 해결 방법일 뿐이며 테이블에 데이터를 입력하면 데이터 유형이 마술처럼 변경되는 이유를 설명하지 않습니다.
답변2
Excel 2010(2007년에는 어떻게 작동했는지는 확실하지 않음)에서 범위를 표로 변환하면 내용과 관계없이 머리글 내용이 텍스트로 변환됩니다. 머리글에 숫자를 넣으려면 셀 서식을 "숫자" 또는 "일반"(또는 필요한 모든 것)으로 표시하고 이전 데이터를 다시 삽입해야 합니다. 분명히 Excel에서는 호환되지 않는 데이터 유형에 대한 검사도 비활성화됩니다( 자동 솔루션, 작은 녹색 화살표 및 해당 메뉴).
답변3
자비를 베풀어주세요 ...
간단하게 IFERROR()
이 문제를 해결합니다. 조회 값이 조회 테이블에서는 숫자일 수 있지만 조회 값 셀에서는 숫자가 아닐 수 있다는 것을 알고 있다면 다음을 수행하십시오.
=IFERROR(VLOOKUP(D$1,Config!$C$4:$E$8,2,FALSE), VLOOKUP(VALUE(D$1),Config!$C$4:$E$8,2,FALSE))
위의 내용은 공식을 일반화한 것입니다. 다른 곳에 복사하지 않으려면 조회 값이 텍스트로 처리되는 숫자이고 수식의 "실패" 절반만 필요하다는 것을 알 수 있습니다. 확실히 모르거나 전혀 모르지만 이런 종류의 문제에 대해 증명하고 싶다면 전체를 사용하십시오.
그것은 다른 방향으로도 작동합니다. 숫자 조회 값이 있다고 가정해 보겠습니다. 예를 들어 Excel에서는 해당 값이 숫자라고 생각합니다. {여기서 Excel에서는 조회 값이 텍스트라고 생각합니다.} 문제를 해결하는 TEXT()
대신 다음을 사용하세요 .VALUE()
=IFERROR(VLOOKUP(D$1,Config!$C$4:$E$8,2,FALSE), VLOOKUP(TEXT(D$1,"@"),Config!$C$4:$E$8,2,FALSE))
(그리고 어느 쪽도 문제를 해결하지 못하면 한 곳에서 다른 곳에서 쓰레기 문자를 찾는 악몽을 꿉니다... 헤더는 일반적으로 안전하고 통제된 세계 외부에서 소스로 제공되는 데이터가 아니기 때문에 먼저 조회 범위 자료를 사용해 보십시오. 가져오지 않는 한 헤더가 있는 곳으로 헤더를 가져옵니다(예를 들어 조회 값이 나오는 전체 자료를 가져온 경우).