Uporaba drugih funkcij za prepoznavanje povezanih podatkovnih tipov

Povezani podatkovni tipi so bili objavljeni vExcel za Office 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.

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.

Razširite poznavanje Officea
Oglejte si izobraževanje
Prvi dobite nove funkcije
Pridružite se programu Office Insider

Vam je bila informacija v pomoč?

Zahvaljujemo se vam za povratne informacije.

Zahvaljujemo se vam za povratne informacije. Videti je, da bi vam prišla prav pomoč enega od naših Officeovih agentov za podporo.

×