Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Länkade datatyper släpptes först Excel för Microsoft 365 juni 2018 och därför kan det hända att andra funktioner inte kan identifiera dem. Det kan vara särskilt sant när du vill använda andra funktioner för att villkorligt identifiera om en cell innehåller en länkad datatyp eller inte. I den här artikeln beskrivs några lösningar du kan använda för att identifiera länkade datatyper i celler.

Obs!: Länkade datatyper är endast tillgängliga för globala klienter med flera klientorganisationsklienter ( Microsoft 365-konton).

Formler

Du kan alltid skriva formler som refererar till datatyper. Om du däremot vill extrahera texten i en cell med en länkad datatyp med hjälp av funktionen TEXT får du en #VALUE! fel.

En lösning är att använda funktionen FIELDVALUE och ange fältet Namn för field_name argumentet. I följande exempel, om cell A1 innehöll en aktiedatatyp, skulle formeln returnera aktienamnet.

=FIELDVALUE(A1;"Namn")

Men om cell A1 inte innehåller en länkad datatyp returnerar funktionen FIELDVALUE ett #FIELD!-fel. Om du vill utvärdera om en cell innehåller en länkad datatyp kan du använda följande formel som använder funktionen ÄRFEL för att testa om funktionen FIELDVALUE returnerar ett fel.

=OM(ÄRFEL(FIELDVALUE(A2;"Namn"));"Den här cellen har ingen länkad datatyp";"Den här cellen har en länkad datatyp")

Om formeln utvärderas till ett fel returneras texten "Den här cellen har ingen länkad datatyp", annars returneras "Den här cellen har en länkad datatyp".

Om du bara vill dölja #FIELD! kan du använda:

=OMFEL(FIELDVALUE(A1;"Namn")"")

Vilket returnerar en tom cell om ett fel uppstår.

Villkorsstyrd formatering

Du kan villkorligt formatera en cell baserat på om den har en länkad datatyp. Först markerar du de celler som behöver den villkorsstyrda formateringen och går sedan till Fliken start > villkorsstyrd formatering > Ny regel > Använda en formel... För formeln använder du följande:

=INTE(ÄRFEL(FIELDVALUE(A1;"Namn")))

Där cell A1 är den översta cellen i det område som du vill utvärdera. Använd sedan det format du vill ha.

Om cell A1 i det här exemplet innehåller ett giltigt fältnamn för "Namn" returnerar formeln SANT och formateringen kommer att tillämpas. Om cell A1 inte innehåller en länkad datatyp returnerar formeln FALSKT och ingen formatering används. Du kan ta bort NOT om du vill markera celler som inte innehåller giltiga länkade datatyper i stället.

VBA

Det finns flera VBA-Visual Basic for Applications-metoder som du kan använda för att identifiera om en cell eller ett område innehåller länkade datatyper. Den här första proceduren använder egenskapen HasRichDataType. 

Båda dessa procedurer uppmanar dig att markera ett cellområde som ska utvärderas och sedan returnera ett meddelande med resultatet.

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

I nästa procedur används egenskapen 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

Det här kodavsnittet är en användardefinierad funktion (UDF) och du refererar till den precis som alla andra Excel formel. Ange helt enkelt =fn_IsLinkedDataType(A1), där A1 är den cell du vill utvärdera.

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

Om du vill använda något av dessa exempel trycker du på Alt + F11 för att öppna Visual Basic Editor (VBE), går sedan till Infoga>-moduloch klistrar in koden i det nya fönstret som öppnas till höger. Du kan använda Alt+Q för att avsluta Excel när du är klar. Om du vill köra något av de två första exemplen går du till fliken Utvecklare > Kod >Makron> väljer det makro du vill köra i listan och väljer sedan Kör.

Behöver du mer hjälp?

Du kan alltid fråga en expert i Excel Tech Community eller få support i Communities.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×