Povezane vrste podatkov so bile prvič izdane v Excel za Microsoft 365 juniju 2018, zato jih zaradi drugih funkcij morda ne bo mogoče prepoznati. To lahko še posebej velja, če želite uporabiti druge funkcije za pogojno določanje, ali celica vsebuje povezano vrsto podatkov ali ne. V tem članku so razložene nekatere rešitve, ki jih lahko uporabite za prepoznavanje povezanih vrst podatkov v celicah.
Opomba: Povezane vrste podatkov so na voljo le za odjemalce za več najemniki za Worldwide (standardni Microsoft 365 računi).
Formule
Vedno lahko napišete formule, ki se sklicevajo na vrste podatkov. Če pa želite ekstrahiranje besedila celice s povezanim podatkovnim tipom s funkcijo TEXT, dobite #VALUE! napaka #REF!.
Rešitev je, da uporabite funkcijo FIELDVALUE in določite polje »Ime« za field_name argumenta. Če je v tem primeru celica A1 vsebovala vrsto podatkov delnic, bo formula vrnila ime delnice.
=FIELDVALUE(A1,"Ime")
Če pa v celici A1 ni povezane vrste podatkov, funkcija FIELDVALUE vrne napako #FIELD!. Če želite ovrednotiti, ali celica vsebuje povezano vrsto podatkov ali ne, uporabite to formulo, ki s funkcijo ISERROR preveri, ali funkcija FIELDVALUE vrne napako.
=IF(ISERROR(FIELDVALUE(A2,"Ime")),"Ta celica nima povezane vrste podatkov","Ta celica ima povezano vrsto podatkov")
Če formula vrne napako, bo vrnila besedilo »Ta celica nima povezane vrste podatkov«, sicer bo vrnila »Ta celica ima povezano vrsto podatkov«.
Če preprosto želite preprečit #FIELD! lahko uporabite:
=IFERROR(FIELDVALUE(A1,"Ime"),"")
To vrne prazno celico, če pride do napake.
Pogojno oblikovanje
Celico lahko pogojno oblikujete glede na to, ali ima povezana vrsta podatkov. Najprej izberite celice, ki potrebujejo pogojno oblikovanje, nato pa pojdite na Osnovno >Pogojno oblikovanje > Novo pravilo > Uporabite formulo ... Za formulo uporabite to:
=NOT(ISERROR(FIELDVALUE(A1,"Ime")))
Kjer je celica A1 zgornja celica v obsegu, ki ga želite ovrednotiti. Nato uporabite obliko, ki jo želite uporabiti.
Če je v tem primeru v celici A1 veljavno ime polja za »Ime«, formula vrne vrednost TRUE in oblikovanje bo uporabljeno. Če v celici A1 ni povezane vrste podatkov, formula vrne VREDNOST FALSE in oblikovanje ne bo uporabljeno. NOT lahko odstranite, če želite označiti vse celice, v katerih ni veljavnih povezanih vrst podatkov.
VBA
Obstaja več načinov VBA (VBA), ki jih lahko uporabite, če želite ugotoviti, ali celica ali obseg vsebuje povezane vrste podatkov. Ta prvi postopek uporablja lastnost HasRichDataType.
Oba postopka vas pozoveta, da izberete obseg celic, ki jih želite ovrednotiti, nato pa vrnete polje s sporočilom z rezultati.
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
Ta naslednji postopek uporablja lastnost 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
Ta končni izrezek kode je uporabniško določena funkcija in vi se sklicujete nanjo kot na katero koli Excel formulo. Preprosto vnesite =fn_IsLinkedDataType(A1), kjer je A1 celica, ki jo želite ovrednotiti.
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
Če želite uporabiti katerega koli od teh primerov, pritisnite Alt+F11, da odprete urejevalnik za Visual Basic (VBE), nato pa izberite Vstavi >Modulin prilepite kodo v novo okno, ki se odpre na desni. S kombinacijo tipk Alt+Q lahko zaprete Excel, ko končate. Če želite zagnati enega od prvih dveh primerov, pojdite na zavihek Razvijalec > Koda > Makri > na seznamu izberite makro, ki ga želite zagnati, nato pa izberite Zaženi.
Potrebujete dodatno pomoč?
Kadar koli lahko zastavite vprašanje strokovnjaku v skupnosti tehničnih strokovnjakov za Excel ali pa pridobite podporo v skupnostih.