Povezani podatkovni tipi so bili prvič izpuščeni v Excel za Microsoft 365 junija 2018 in jih druge funkcije morda ne bodo mogle prepoznati. To je lahko še posebej res, če želite uporabiti druge funkcije, če želite pogojno ugotoviti, ali celica vsebuje povezan podatkovni tip ali ne. V tem članku so razložene nekatere rešitve, ki jih lahko uporabite za prepoznavanje povezanih podatkovnih tipov v celicah.
Opomba: Povezani podatkovni tipi so na voljo le za odjemalce, ki imajo več najemnikov (standardni Microsoft 365 računi).
Formule
Vedno lahko napišete formule, ki se sklicujejo na podatkovne tipe. Če pa želite ekstrahirati besedilo celice s povezanim podatkovnim tipom tako, da uporabite funkcijo TEXT, boste dobili #VALUE! napaka #REF!.
Rešitev je, da uporabite funkcijo FIELDVALUE in določite polje» ime «za argument» FIELD_NAME «. Če je v tem primeru celica a1 vsebovala podatkovni tip borze, bi formula vrnila ime zaloge.
= FIELDVALUE (a1; "name")
Če pa celica a1 ne vsebuje povezanega podatkovnega tipa, bo funkcija FIELDVALUE vrnila #FIELD!. Če želite ovrednotiti, ali celica vsebuje povezan podatkovni tip, lahko uporabite to formulo, ki uporablja funkcijo ISERROR, da preveri, ali bo funkcija FIELDVALUE vrnila napako.
= IF (ISERROR (FIELDVALUE (a2; "ime")), "ta celica nima povezanega podatkovnega tipa", "ta celica ima povezan podatkovni tip")
Če se formula ovrednoti v napako, vrne besedilo» ta celica nima povezanega podatkovnega tipa «, sicer bo vrnila» ta celica ima povezan podatkovni tip «.
Če želite le zatreti #FIELD! Napaka, lahko uporabite:
= IFERROR (FIELDVALUE (a1; "name"); "")
Ki bo vrnila prazno celico, če je prišlo do napake.
Pogojno oblikovanje
Pogojno lahko oblikujete celico glede na to, ali ima povezan podatkovni tip ali ne. 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; "name")))
Kjer je celica a1 zgornja celica v obsegu, ki ga želite ovrednotiti. Nato uporabite želeno obliko zapisa.
V tem primeru, če celica a1 vsebuje veljavno ime polja za» ime «, formula vrne TRUE in oblikovanje bo uporabljeno. Če celica a1 ne vsebuje povezanega podatkovnega tipa, formula vrne FALSE in oblikovanje ne bo uporabljeno. Če želite označiti celice, ki ne vsebujejo veljavnih povezanih podatkovnih tipov, lahko odstranite ne.
VBA
Obstaja več načinov VBA (Visual Basic for Applications), ki jih lahko uporabite, če želite ugotoviti, ali celica ali obseg vključuje povezane podatkovne tipe. V tem prvem postopku je uporabljena lastnost HasRichDataType.
Oba postopka bosta pozvana, da izberete obseg celic, ki ga želite ovrednotiti, in nato 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
V tem naslednjem postopku je uporabljena 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 odrezek kode je uporabniško definirana funkcija (UDF), vi pa se sklicujete tako, kot vse druge Excelove formule. 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 kateri koli od teh primerov, pritisnite ALT + F11 , da odprete urejevalnik za Visual Basic (VBE), nato pa pojdite v razdelek Vstavi> modulin prilepite kodo v novo okno, ki se odpre na desni strani. Ko končate, lahko uporabite ALT + Q , da se vrnete v Excel. Če želite zagnati enega od prvih dveh primerov, pojdite na zavihek razvijalec> koda> makri> izberite makro, ki ga želite zagnati s seznama, nato pa izberite Zaženi.
Potrebujete dodatno pomoč?
Kadar koli lahko zastavite vprašanje strokovnjaku v skupnosti tehničnih strokovnjakov za Excel, pridobite podporo skupnosti Answers ali predlagate novo funkcijo oziroma izboljšavo na spletnem mestu Excel User Voice.
Opomba: Ta stran je bila prevedena z avtomatizacijo in lahko vsebuje slovnične napake ali nepravilnosti. Želimo, da bi bila ta vsebina za vas uporabna. Ali nam lahko sporočite, če so bile te informacije uporabne? Tukaj je referenčni članek v angleščini.