Bruke andre funksjoner til å identifisere koblede data typer

Koblede data typer ble lansert iExcel for Office 365 i juni 2018, og dermed kan det hende at andre funksjoner ikke kan identifisere dem. Dette kan være spesielt sant når du vil bruke andre funksjoner til betinget identifikasjon av om en celle inneholder en koblet datatype eller ikke. Denne artikkelen forklarer noen midlertidige løsninger du kan bruke til å identifisere koblede data typer i celler.

Formler

Du kan alltid skrive formler som refererer til data typer. Hvis du imidlertid vil trekke ut teksten i en celle med en koblet datatype ved hjelp av tekst-funksjonen, får du et #VALUE! -feil.

En midlertidig løsning er å bruke feltverdi -funksjonen og angi navn -feltet for FIELD_NAME -argumentet. I følgende eksempel, hvis celle a1 inneholdt en aksje data type, vil formelen returnere lager navnet.

= FELTVERDI (a1, «navn»)

Hvis imidlertid celle a1 ikke inneholder en koblet datatype, vil FELTVERDI-funksjonen returnere en #FIELD! feil. Hvis du vil evaluere om en celle inneholder en koblet datatype, kan du bruke følgende formel, som bruker ERFEIL-funksjonen til å teste om FELTVERDI-funksjonen vil returnere en feil.

= Hvis (ERFEIL (FELTVERDI (a2; "navn")); "denne cellen har ikke en koblet datatype", "denne cellen har en koblet datatype")

Hvis formelen evalueres til en feil, returnerer den teksten «denne cellen har ikke en koblet datatype», ellers returneres «denne cellen har en koblet datatype».

Hvis du bare vil undertrykke #FIELD! feil, kan du bruke:

= HVISFEIL (FELTVERDI (a1; "navn"); "")

Som vil returnere en tom celle hvis det er en feil.

Betinget formatering

Du kan betinget formatere en celle basert på om den har en koblet datatype eller ikke. Først merker du cellene som trenger den betingede formateringen, og deretter går du til hjem > betinget formatering > ny regel > bruke en formel... For formelen bruker du følgende:

= NOT (ERFEIL (FELTVERDI (a1, "navn")))

Der celle a1 er den øverste cellen i området du vil evaluere. Deretter bruker du formatet du vil bruke.

I dette eksemplet, hvis celle a1 inneholder et gyldig feltnavn for «navn», returnerer formelen sann, og formateringen blir brukt. Hvis celle a1 ikke inneholder en koblet datatype, returnerer formelen USANN, og ingen formatering blir brukt. Du kan fjerne det ikke hvis du ville utheve noen celler som ikke inneholder gyldige koblede data typer i stedet.

VBA

Det finnes flere VBA-metoder (Visual Basic for Applications) som du kan bruke til å identifisere om en celle eller et område inneholder koblede data typer. Denne første prosedyren bruker HasRichDataType-egenskapen

Begge disse prosedyrene vil be deg om å merke et celle område du vil evaluere, og deretter returnere en meldings boks med resultatene.

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

Denne neste prosedyren bruker LinkedDataTypeState-egenskapen.

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

Denne avsluttende kode snutten er en brukerdefinert funksjon (UDF), og du refererer til den på samme måte som alle andre Excel-formler. Bare skriv inn =fn_IsLinkedDataType (a1), der a1 er cellen du vil evaluere.

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

Hvis du vil bruke noen av disse eksemplene, trykker du Alt + F11 for å åpne Visual Basic Editor (VBE), og deretter går du til Sett inn> modulog limer inn koden i det nye vinduet som åpnes til høyre. Du kan bruke Alt + Q for å gå tilbake til Excel når du er ferdig. Hvis du vil kjøre ett av de to første eksemplene, går du til utvikler-fanen> kode> makroer> velger makroen du vil kjøre fra listen, og deretter velger du Kjør.

Trenger du mer hjelp?

Du kan alltid spørre en ekspert i Excel tekniske fellesskap, få støtte i Svar-fellesskapet eller foreslå en ny funksjon eller forbedring på Excel User Voice.

Bli bedre på Office
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×