programing

Excel: VLOOKUP에 일치하는 항목이 없을 때 셀을 (0 대신) 비워 두는 방법은 무엇입니까?

randomtip 2023. 6. 10. 16:45
반응형

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

(*): 모르는 부분이 있으면 다음과 같이 간단합니다.

  1. CTRL + F11 누르기 =>Microsoft Visual Basic for Applications창이 열립니다.
  2. 새 모듈을 삽입하고 오른쪽 편집기에 위의 코드를 붙여넣습니다.
  3. 방금 연 창 닫기

독일어 버전의 경우 다른 버전을 추가할 수 있습니다.

'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

반응형