다른 기능을 사용 하 여 연결 된 데이터 형식 식별

연결 된 데이터 형식은 2018 년 6 월Office 365용 Excel 에 릴리스 되었으며 다른 기능으로는이를 식별 하지 못할 수 있습니다. 이는 다른 기능을 사용 하 여 셀에 연결 된 데이터 형식이 포함 되어 있는지 여부를 조건부로 확인 하려는 경우에 특히 그렇습니다. 이 문서에서는 셀에서 연결 된 데이터 형식을 식별 하는 데 사용할 수 있는 몇 가지 해결 방법에 대해 설명 합니다.

수식

데이터 형식을 참조 하는 수식을 항상 작성할수 있습니다. 그러나 TEXT 함수를 사용 하 여 연결 된 데이터 형식으로 셀의 텍스트를 추출 하려는 경우에는 #VALUE를 얻을 수 있습니다. 오류가 발생합니다.

해결 방법은 FIELDVALUE 함수를 사용 하 고 Field_name 인수에 Name 필드를 지정 하는 것입니다. 다음 예제에서 A1 셀에 주식 데이터 형식이 포함 되어 있으면 수식은 주식 이름을 반환 합니다.

= FIELDVALUE (A1, "Name")

그러나 A1 셀에 연결 된 데이터 형식이 포함 되어 있지 않으면 FIELDVALUE 함수는 #FIELD! 오류 를 반환 합니다.. 셀에 연결 된 데이터 형식이 포함 되어 있는지 여부를 평가 하려면 ISERROR 함수를 사용 하는 다음 수식을 사용 하 여 FIELDVALUE 함수에서 오류를 반환 하는지 테스트 합니다.

= IF (ISERROR (FIELDVALUE (A2, "Name")), "이 셀에 연결 된 데이터 형식이 없습니다.", "이 셀에는 연결 된 데이터 형식이 있습니다.")

수식이 오류로 평가 되는 경우 "이 셀에 연결 된 데이터 형식이 없습니다." 텍스트를 반환 하 고, 그렇지 않으면 "이 셀에 연결 된 데이터 형식"이 반환 됩니다.

단순히 #FIELD을 표시 하지 않으려면 오류: 다음을 사용할 수 있습니다.

= IFERROR (FIELDVALUE (A1, "Name"), "")

오류가 있는 경우 빈 셀을 반환 합니다.

조건부 서식

연결 된 데이터 형식이 있는지 여부에 따라 셀의 서식을 조건부로 지정할 수 있습니다. 먼저 조건부 서식이 필요한 셀을 선택 하 고 > 조건부 서식 > 새 규칙 으로 이동한 다음 수식을 사용 > 합니다. 수식의 경우 다음을 사용 합니다.

= No (ISERROR (FIELDVALUE (A1, "Name"))))))))))

여기서 A1 셀은 계산 하려는 범위의 맨 위 셀입니다. 그런 다음 원하는 서식을 적용 합니다.

이 예제에서 A1 셀에 "Name"에 대 한 유효한 필드 이름이 있으면 수식에서 TRUE를 반환 하 고 서식이 적용 됩니다. A1 셀에 연결 된 데이터 형식이 포함 되어 있지 않으면 수식에서 FALSE가 반환 되 고 서식이 적용 되지 않습니다. 잘못 된 연결 데이터 형식이 포함 되어 있지 않은 셀을 강조 표시 하려면 ' 아니요 '를 제거할 수 있습니다.

VBA

셀 또는 범위에 연결 된 데이터 형식이 포함 되어 있는지 여부를 식별 하는 데 사용할 수 있는 몇 가지 VBA (Visual Basic for Applications) 메서드가 있습니다. 첫 번째 절차에서는 HasRichDataType 속성을 사용 합니다. 

이 두 절차에서는 평가할 셀 범위를 선택 하 라는 메시지를 표시 하 고 결과를 포함 하 여 메시지 상자를 반환 합니다.

Sub IsLinkedDataType()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
      '    Check if the HasRichDataType is TRUE or FALSE
        If c.HasRichDataType = True Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c

    MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"
    
End Sub

다음 절차에서는 LinkedDataTypeState 속성을 사용 합니다.

Sub IsLinkedDataTypeState()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
   '    Check if the LinkedDataTypeState is 1 (TRUE) or 0 (FALSE)
        If c.LinkedDataTypeState = 1 Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c
    
   MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"

End Sub

이 마지막 코드 조각은 UDF (사용자 정의 함수) 이며 다른 Excel 수식과 마찬가지로 참조 합니다. =Fn_IsLinkedDataType (a1)를 입력 하면 되며 여기서 a1은 계산할 셀입니다.

Public Function fn_IsLinkedDataType(c As Range)
'   Function will return TRUE if a referenced cell contains a linked data type
    If c.HasRichDataType = True Then
      fn_IsLinkedDataType = "Linked data type"
    Else
        fn_IsLinkedDataType = "Not a linked data type"
    End If
End Function

이러한 예제를 사용 하려면 Alt + f 11을 눌러 VBE (Visual Basic Editor)를 연 다음> 모듈로삽입 으로 이동한 다음 오른쪽에 열리는 새 창에 코드를 붙여 넣습니다. 작업이 완료 되 면 Alt + Q 를 사용 하 여 Excel로 다시 끝낼 수 있습니다. 처음 두 예제 중 하나를 실행 하려면 개발 도구 탭 으로 이동 하 여 코드> 매크로> 목록에서 실행할 매크로> 선택한 다음 실행을 선택 합니다.

추가 지원

Excel 기술 커뮤니티의 전문가에게 질문하고, Answers 커뮤니티에서 지원을 받고, Excel 사용자 의견에서 새로운 기능이나 개선 사항을 제안해 보세요.

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×