Používanie iných funkcií na identifikáciu prepojených typov údajov

Prepojené typy údajov boli vydané vExcel pre Office 365 v júni 2018 a ako také môžu iné funkcie vedieť identifikovať. Toto môže byť obzvlášť pravdivé, ak chcete použiť iné funkcie na podmienečné určenie, či bunka obsahuje prepojený typ údajov alebo nie. V tomto článku sú vysvetlené niektoré alternatívne riešenia, ktoré môžete použiť na identifikáciu prepojených typov údajov v bunkách.

Vzorce

Vzorce, ktoré odkazujú na typy údajov,môžete vždy písať. Ak však chcete extrahovať text bunky s prepojeným typom údajov pomocou funkcie TEXT, zobrazí sa #VALUE. Ak je zadané umiestnenie pred prvou alebo za poslednou položkou v poli, výsledkom vzorca bude chybová hodnota #ODKAZ!.

Alternatívne riešenie je použitie funkcie FIELDVALUE a zadanie poľa názov pre argument field_name . V nasledujúcom príklade, ak bunka A1 obsahovala typ údajov Stock, vzorec vráti názov akcie.

= FIELDVALUE (a1; "name")

Ak však bunka A1 neobsahuje prepojený typ údajov, funkcia FIELDVALUE vráti chybovú hodnotu #FIELD!. Ak chcete vyhodnotiť, či bunka obsahuje prepojený typ údajov, môžete použiť nasledujúci vzorec, ktorý používa funkciu ISERROR na otestovanie, či funkcia FIELDVALUE vráti chybu.

= IF (ISERROR (FIELDVALUE (a2; "name")), "Táto bunka nemá prepojený typ údajov", "Táto bunka má prepojený typ údajov")

Ak sa vzorec vyhodnotí na chybu, vráti sa text "Táto bunka nemá prepojený typ údajov", v opačnom prípade sa vráti "Táto bunka má prepojený typ údajov".

Ak chcete #FIELD len potlačiť. chyba, môžete použiť:

= IFERROR (FIELDVALUE (a1; "name"); "")

Ak sa zobrazí chyba, vráti sa prázdna bunka.

Podmienené formátovanie

Môžete podmienene formátovať bunku na základe toho, či má alebo nemá prepojený typ údajov. Najprv vyberte bunky, ktoré vyžadujú podmienené formátovanie, a potom prejdite na položku domov > podmienené formátovanie > nové pravidlo > použiť vzorec... V prípade vzorca by ste mali použiť nasledovné:

= NOT (ISERROR (FIELDVALUE (a1; "name")))

Kde bunka A1 je horná bunka v rozsahu, ktorý chcete vyhodnotiť. Potom použite požadovaný formát.

V tomto príklade, ak bunka A1 obsahuje platný názov poľa "name" (názov), vzorec vráti hodnotu TRUE a použije sa formátovanie. Ak bunka A1 neobsahuje prepojený typ údajov, vzorec vráti hodnotu False a nepoužije sa žiadne formátovanie. Ak ste chceli Zvýrazniť všetky bunky, ktoré neobsahujú platné prepojené typy údajov, môžete odstrániť ne.

VBA

Existuje niekoľko metód jazyka VBA (Visual Basic for Applications), ktoré môžete použiť na určenie, či bunka alebo rozsah obsahuje prepojené typy údajov. Tento prvý postup používa vlastnosť HasRichDataType

Oba tieto postupy vám vyberú výzvu na výber rozsahu buniek, ktoré sa majú vyhodnotiť, a potom vrátite pole s výsledkami správy.

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

Tento ďalší postup používa vlastnosť 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

Tento posledný zlomok kódu je funkcia definovaná používateľom (UDF) a vy ju budete odkazovať rovnako ako akýkoľvek iný vzorec programu Excel. Jednoducho zadajte =fn_IsLinkedDataType (a1), kde a1 je bunka, ktorú chcete vyhodnotiť.

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

Ak chcete použiť ktorýkoľvek z týchto príkladov, stlačte kombináciu klávesov ALT + F11 , čím sa otvorí Editor jazyka Visual Basic (VBE), potom prejdite na položku Vložiť> modula prilepte kód do nového okna, ktoré sa otvorí napravo. Stlačením kombinácie klávesov ALT + Q sa po dokončení ukončí späť do Excelu. Ak chcete spustiť niektorý z prvých dvoch príkladov, prejdite na kartu vývojár> kód> makrá> vyberte makro, ktoré chcete spustiť zo zoznamu, a potom vyberte položku Spustiť.

Potrebujete ďalšiu pomoc?

Vždy sa môžete opýtať odborníka v komunite Excel Tech Community, získať podporu v rámci komunity lokality Answers alebo navrhnúť novú funkciu či vylepšenie na lokalite Excel User Voice.

Rozšírte svoje zručnosti práce s balíkom Office
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×