Excel: VLOOKUP에 일치하는 항목이 없을 때 셀을 (0 대신) 비워 두는 방법은 무엇입니까?
저는 국가와 회사라는 두 가지 워크시트가 있는 엑셀 워크북을 가지고 있습니다.는 회사워트부가작있로습다니어를 통해 .VLOOKUP
국가 워크시트의 s는 다음과 같습니다.
국가:
A B
1 COUNTRY HOF_LTO
2 Belgium 4
3 Japan 5
4 Spain
5 Sweden 0
회사:
A B C
1 COMPANY COUNTRY HOF_LTO
2 Belgacom Belgium 4
3 Onkyo Japan 5
4 Sony Japan 5
5 ATTM Spain 0
6 Nokia Sweden 0
나는 그것을 채우고 있습니다.C
다음 공식을 사용하여 열을 표시합니다.
=VLOOKUP($B2;countries!$A$1:$C$5;MATCH(companies!B$1;countries!$1:$1;0);FALSE)
가 되는 ▁though비: ▁what:록▁is것.Spain
를 가지고 있지 않습니다.HOF_LTO
, 은 -value를 붙입니다.0
의 적 절 한 값 으 로 셀 ▁cell ▁in ▁the 로 ate ▁as ▁value ▁appropri 셀 값companies!C5
.0
)라고 쓰여 있을 때0
스웨덴의 경우와 마찬가지로 국가 탭에서.
일치할 국가 값이 없을 때 셀이 비어 있도록 수식을 편집하려면 어떻게 해야 합니까?
이를 통해 해결할 수 있습니다.
=VLOOKUP(...) & ""
이렇게 하면 Excel이 셀 참조를 텍스트 값으로 만들어 빈칸이 0으로 변환되지 않습니다.
https://superuser.com/a/906954/222835 에서 발췌
=CONCATENATE(VLOOKUP($B2;countries!$A$1:$C$5;MATCH(companies!B$1;countries!$1:$1;0);FALSE))
연결은 데이터가 숫자가 아닌 문자열처럼 처리되도록 합니다.값이 빈 셀일 경우 빈 셀만 얻을 수 있습니다.
국가 시트에 모든 국가가 한 번만 있는 경우 다음을 대신 사용할 수 있습니다.
=IF(ISNUMBER(OFFSET(countries!$B$1;MATCH(B2;countries!A:A;0)-1;0));
OFFSET(countries!$B$1;MATCH(B2;countries!A:A;0)-1;0);
"")
다▁a▁here▁is에 대한 변형이 있습니다.VLOOKUP
숫자 값이 문자열로 변환되지 않도록 보장하는 연결 응답:
=IF(LEN(VLOOKUP(args) & "")=0,"",VLOOKUP(args))
또는 제어해야 하는 데이터의 표시일 경우 셀 형식을 조정하여 숫자 0 대신 0 값을 공백으로 표시합니다.
간단한 솔루션:국가별 소스 워크북의 전체 배열에서 찾기 및 바꾸기를 수행하고 빈 셀을 @로 바꿉니다(모두 바꾸기를 수행할 때 "전체 셀만 찾기"가 선택되어 있는지 확인하십시오).그런 다음 돌아가서 조회를 실행합니다.값을 복사하여 붙여넣으면 조회가 제거되고 결과만 유지됩니다.이제 @ 기호를 검색하고 대상 파일에 아무것도 없는 것으로 바꿉니다.Voila.
제가 찾은 텍스트(펀 의도)에 대한 가장 깨끗한 방법은CLEAN
기능.:)
참고: 실제 텍스트를 반환하는 열에만 사용해야 합니다.숫자, 날짜 등을 반환하는 경우 이 래퍼를 생략할 수 있습니다.
다음과 같은 기능으로 간단히 포장합니다.
=CLEAN(VLOOKUP($B2,countries!$A$1:$C$5,MATCH(companies!B$1,countries!$1:$1,0),FALSE))
더 좋은 것은, 모든 것을 an에 싸서 당신이 받지 않도록 하는 것입니다.#N/A
아니면 무서운 사람들#REF!
등 뒤; 이렇게:
=IFERROR(CLEAN(VLOOKUP($B2,countries!$A$1:$C$5,MATCH(companies!B$1,countries!$1:$1,0),FALSE)),"")
보너스: 고정!모든 공식이 함수 인수 사이에 쉼표 대신 세미콜론을 잘못 사용했습니다. 아무도 그것을 이해하지 못했다는 것이 놀랍습니다.>.<
일반:
=IFERROR(CLEAN(VLOOKUP(lookup_value, table_array, col_index_num,FALSE)),"")
텍스트용=IFERROR(VLOOKUP(lookup_value, table_array, col_index_num,FALSE),"")
값의 경우=IFERROR(VALUE(VLOOKUP(lookup_value, table_array, col_index_num,FALSE)),"")
강제된 값의 경우
또 다른 솔루션은 일반적인 솔루션을 단순화하는 UDF(사용자 정의 함수)를 사용하는 것입니다(*).vlookup
많이 사용합니다(그리고 좋은 성능과 더 읽기 쉬운 공식을 존중합니다).
따라서 사용법은 다음과 같은 예를 참조하십시오.
=VLOOKUP2(
$B2 ; countries!$A$1:$C$5 ; MATCH( companies!B$1 ; countries!$1:$1 ; 0 ) ; "" )
예를 들어 (좋은 필로우 케이스 예를 기반으로 함) 대신:
=VLOOKUP(
$B2 ; countries!$A$1:$C$5 ; MATCH( companies!B$1 ; countries!$1:$1 ; 0 ) ; FALSE)
& ""
다른 경우(예: 검색 기준)$B2
아마 이미#NV
또는 유사하게 다음과 같은 것이 의미가 있을 수 있습니다.
=VLOOKUP2(
$B2 ; countries!$A$1:$C$5 ; MATCH( companies!B$1 ; countries!$1:$1 ; 0 ) ; "" ; "")
의 코드:vlookup2
다음과 같습니다.
'simpler to use than vlookup
'only exact matches and 0 subst value support
'https://stackoverflow.com/a/55743343/1915920
'
Function vlookup2( _
ByRef searchCriteria As Variant, _
ByRef matrix As Variant, _
ByRef columnIndex As Variant, _
Optional zeroSubst As Variant, _
Optional errSubst As Variant )
Dim val As Variant: val = Application.WorksheetFunction.VLookup( _
searchCriteria, matrix, columnIndex, False )
If Not IsMissing(errSubst) Then On Error GoTo EH 'EH = error handler
If Not IsMissing(zeroSubst) And val = 0 Then val = zeroSubst
vlookup2 = val
Exit Function
EH:
vlookup2 = errSubst
End Function
(*): 모르는 부분이 있으면 다음과 같이 간단합니다.
- CTRL + F11 누르기 =>
Microsoft Visual Basic for Applications
창이 열립니다. - 새 모듈을 삽입하고 오른쪽 편집기에 위의 코드를 붙여넣습니다.
- 방금 연 창 닫기
독일어 버전의 경우 다른 버전을 추가할 수 있습니다.
'https://stackoverflow.com/a/55743343/1915920
Function SVerweis2( _
ByRef Suchkriterium As Variant, _
ByRef Matrix As Variant, _
ByRef SpaltenIndex As Variant, _
Optional NullZahlSubst As Variant, _
Optional FehlerSubst As Variant)
SVerweis2 = vlookup2( Suchkriterium, Matrix, SpaltenIndex , NullZahlSubst, FehlerSubst )
End Function`
언급URL : https://stackoverflow.com/questions/16125307/excel-how-to-leave-cell-empty-instead-of-0-when-vlookup-has-no-match
'programing' 카테고리의 다른 글
파이썬에서 포인트가 폴리곤 내부에 있는지 확인하는 가장 빠른 방법은 무엇입니까? (0) | 2023.07.20 |
---|---|
리눅스에서 bash 명령이 아닌 C 함수에 대한 man 페이지를 가져오려면 어떻게 해야 합니까? (0) | 2023.06.10 |
고유/임의 이름으로 파일 저장 (0) | 2023.06.10 |
하나의 CSS 파일을 다른 파일에 포함하는 것이 가능합니까? (0) | 2023.06.10 |
두 인수 중 하나가 NaN인 경우 C/C++ <, <= 및 == 연산자가 true를 반환하는 원인은 무엇입니까? (0) | 2023.06.10 |