Sammenkædede datatyper blev først udgivet i Excel til Microsoft 365 juni 2018, og derfor kan andre funktioner muligvis ikke identificere dem. Dette kan især være tilfældet, hvis du vil bruge andre funktioner til at identificere betinget identificering af, om en celle indeholder en sammenkædet datatype eller ej. I denne artikel forklares nogle løsninger, du kan bruge til at identificere sammenkædede datatyper i celler.
Bemærk!: Sammenkædede datatyper er kun tilgængelige for kunder med flere lejere (standardkonti Microsoft 365 lejere).
Formler
Du kan altid skrive formler, der henviser til datatyper. Men hvis du vil udtrække teksten i en celle med en sammenkædet datatype ved hjælp af funktionen TEKST, får du et #VALUE! som fejl.
En midlertidig løsning er at bruge funktionen FELTVÆRDI og angive feltet Navn for field_name argument. Hvis celle A1 i følgende eksempel indeholdt en aktiedatatype, ville formlen returnere aktienavnet.
=FELTVÆRDI(A1,"Navn")
Men hvis celle A1 ikke indeholder en sammenkædet datatype, returnerer funktionen FELTVÆRDI en #FIELD!-. Hvis du vil evaluere, om en celle indeholder en sammenkædet datatype, kan du bruge følgende formel, som bruger funktionen ER.FEJL til at teste, om funktionen FELTVÆRDI returnerer en fejl.
=HVIS(ER.FEJL(FELTVÆRDI(A2,"Navn")),"Denne celle har ikke en sammenkædet datatype","Denne celle har en sammenkædet datatype")
Hvis formlen evalueres som en fejl, så returneres teksten "Denne celle har ikke en sammenkædet datatype", ellers returneres "Denne celle har en sammenkædet datatype".
Hvis du blot vil undertrykke #FIELD! -fejlen, kan du bruge:
=HVIS.FEJL(FELTVÆRDI(A1,"Navn"),"")
Hvilket returnerer en tom celle, hvis der er en fejl.
Betinget formatering
Du kan formatere en celle betinget ud fra, om den har en sammenkædet datatype eller ej. Først skal du markere de celler, der skal bruge den betingede formatering, og derefter gå til Hjem > betinget formatering > Ny regel > Brug en formel... Til formlen skal du bruge følgende:
=IKKE(ER.FEJL(FELTVÆRDI(A1,"Navn")))
Hvor celle A1 er den øverste celle i det område, du vil evaluere. Anvend derefter det ønskede format.
I dette eksempel, hvis celle A1 indeholder et gyldigt feltnavn for "Navn", returnerer formlen SAND, og formateringen anvendes. Hvis celle A1 ikke indeholder en sammenkædet datatype, returnerer formlen FALSK, og der anvendes ingen formatering. Du kan fjerne NOT, hvis du vil fremhæve eventuelle celler, der ikke indeholder gyldige sammenkædede datatyper i stedet.
VBA
Der er flere VBA-metoder (Visual Basic for Applications), du kan bruge til at identificere, om en celle eller et område indeholder sammenkædede datatyper. I den første procedure bruges egenskaben HasRichDataType.
Begge disse procedurer beder dig om at vælge et celleområde, der skal evalueres, og derefter returnere et meddelelsesfelt med resultaterne.
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 den næste procedure bruges egenskaben 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
Dette endelige kodestykke er en brugerdefineret funktion, og du refererer til den som enhver anden Excel formel. Du skal blotindtaste = fn_IsLinkedDataType(A1),hvor A1 er den celle, 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 bruge et af disse eksempler, skal du trykke på Alt+F11 for at åbne Visual Basic Editor (VBE) og derefter gå til Indsæt >-modulog indsætte koden i det nye vindue, der åbnes til højre. Du kan bruge Alt+Q til at afslutte Excel når du er færdig. Hvis du vil køre et af de første to eksempler, skal du gå til fanen Udvikler >Kode > Makroer > vælge den makro, du vil køre på listen, og derefter vælge Kør.
Har du brug for mere hjælp?
Du kan altid spørge en ekspert i Excel Tech Community eller få support i community'er.