연결된 데이터 형식은 Microsoft 365용 Excel 2018년 6월에 처음 릴리스되었습니다. 따라서 다른 기능은 식별할 수 없습니다. 이 기능은 다른 기능을 사용하여 셀에 연결된 데이터 형식이 있는지 여부를 조건부로 식별하려는 경우 특히 그에 해당할 수 있습니다. 이 문서에서는 셀에서 연결된 데이터 형식을 식별하는 데 사용할 수 있는 몇 가지 해결 방법을 설명합니다.
참고: 연결된 데이터 형식은 전 세계 다중 테넌트 클라이언트(표준 Microsoft 365 계정)에서만 사용할 수 있습니다.
수식
항상 데이터 형식을 참조하는 수식을 작성할 수 있습니다. 그러나 TEXT 함수를 사용하여 연결된 데이터 형식이 있는 셀의 텍스트를 추출하려는 경우 텍스트가 #VALUE! 오류가 발생합니다.
해결 방법을 통해 FIELDVALUE 함수를 사용하여 필드 인수의 이름 필드를 field_name 있습니다. 다음 예제에서 셀 A1에 주식 데이터 형식이 포함된 경우 수식은 주식 이름을 반환합니다.
=FIELDVALUE(A1,"Name")
그러나 셀 A1에 연결된 데이터 형식이 없는 경우 FIELDVALUE 함수는 #FIELD! 오류를 반환합니다.. 셀에 연결된 데이터 형식이 있는지 여부를 평가하려는 경우 ISERROR 함수를 사용하여 FIELDVALUE 함수가 오류를 반환하는지 테스트하는 다음 수식을 사용할 수 있습니다.
=IF(ISERROR(FIELDVALUE(A2,"Name")),"이 셀에는 연결된 데이터 형식이 없습니다", "이 셀에는 연결된 데이터 형식이 있습니다.")
수식이 오류로 평가하면 "이 셀에는 연결된 데이터 형식이 없습니다"라는 텍스트가 반환됩니다. 그렇지 않으면 "이 셀에 연결된 데이터 형식이 있습니다"가 반환됩니다.
단순히 를 표시하지 #FIELD! 오류, 다음을 사용할 수 있습니다.
=IFERROR(FIELDVALUE(A1,"Name"),")
오류가 있는 경우 빈 셀을 반환합니다.
조건부 서식
연결된 데이터 형식이 있는지 여부에 따라 셀의 서식을 조건부로 지정할 수 있습니다. 먼저 조건부 서식이 필요한 셀을 선택한 다음, 새 규칙 > 수식 사용 > > 홈 >... 수식의 경우 다음을 사용하게 됩니다.
=NOT(ISERROR(FIELDVALUE(A1,"Name")))
여기서 셀 A1은 평가하려는 범위의 최상위 셀입니다. 그런 다음 원하는 형식을 적용합니다.
이 예제에서는 셀 A1에 "Name"에 대한 유효한 필드 이름이 포함된 경우 수식이 TRUE를 반환하고 서식이 적용됩니다. 셀 A1에 연결된 데이터 형식이 없는 경우 수식은 FALSE를 반환하고 서식은 적용되지 않습니다. 대신 유효한 연결된 데이터 형식을 포함하지 않는 셀을 강조 표시하려면 NOT를 제거할 수 있습니다.
VBA
셀 또는 범위에 연결된 데이터 형식이 Visual Basic for Applications 식별하는 데 사용할 수 있는 여러 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+F11을 눌러 VBE(Visual Basic 편집기)를 연 다음> 모듈 삽입으로 이동하고 오른쪽에 열리는 새 창에 코드를 붙여넣습니다. Alt+Q를 사용하여 완료되면 Excel 종료할 수 있습니다. 처음 두 예제 중 하나를 실행하려면 목록에서 실행할 매크로를 > 코드>> 개발자 탭으로 이동한 다음 실행을 선택합니다.
추가 지원
언제든지 Excel 기술 커뮤니티에서 전문가에게 문의하거나 커뮤니티에서 지원을 받을 수 있습니다.