Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Propojené datové typy byly poprvé vydány v Excel pro Microsoft 365 červnu 2018 a další funkce je nemusí identifikovat. To platí hlavně v případě, že chcete pomocí jiných funkcí podmíněně identifikovat, jestli buňka obsahuje propojený datový typ nebo ne. Tento článek vysvětluje některá alternativní řešení, která můžete použít k identifikaci propojených datových typů v buňkách.

Poznámka: Propojené datové typy jsou dostupné jenom pro klienty s více tenanty po celém světě (standardní Microsoft 365 účty).

Vzorce

Vždycky můžete psát vzorce, které odkazují na datové typy. Pokud ale chcete extrahovat text buňky s propojeným datovým typem pomocí funkce TEXT, dostanete #VALUE! .

Alternativním řešením je použít funkci FIELDVALUE a zadat pole Název field_name argumentu. V následujícím příkladu, pokud buňka A1 obsahovala burzovní datový typ, vzorec vrátí název akcie.

=FIELDVALUE(A1;"Název")

Pokud ale buňka A1 neobsahuje propojený datový typ, vrátí funkce FIELDVALUE chybu #FIELD!.. Pokud chcete vyhodnotit, jestli buňka obsahuje propojený datový typ, můžete použít následující vzorec, který pomocí funkce ISERROR otestuje, jestli funkce FIELDVALUE vrátí chybu.

=KDYŽ(ISERROR(FIELDVALUE(A2;"Název"));"Tato buňka nemá propojený datový typ","Tato buňka má propojený datový typ")

Pokud vzorec vyhodnotí chybu, vrátí text "Tato buňka nemá propojený datový typ", jinak vrátí "Tato buňka má propojený datový typ".

Pokud chcete jenom potlačit #FIELD! můžete použít:

=IFERROR(FIELDVALUE(A1;"Název"),"")

Pokud dojde k chybě, vrátí se prázdná buňka.

Podmíněné formátování

Buňku můžete podmíněně formátovat podle toho, jestli má propojený datový typ. Nejdřív vyberete buňky, které potřebují podmíněné formátování, a pak přejděte na Domů > Podmíněné formátování >Nové pravidlo > Použít vzorec... Pro vzorec byste měli použít následující:

=NOT(ISERROR(FIELDVALUE(A1;"Název")))

Buňka A1 je horní buňka v oblasti, kterou chcete vyhodnotit. Potom použijte formát, který chcete použít.

Pokud v tomto příkladu buňka A1 obsahuje platný název pole pro název, vrátí vzorec hodnotu PRAVDA a použije se formátování. Pokud buňka A1 neobsahuje propojený datový typ, vrátí vzorec hodnotu NEPRAVDA a nebude použito žádné formátování. Pokud chcete zvýraznit všechny buňky, které neobsahují platné propojené datové typy, můžete odebrat ne.

VBA

Existuje několik metod jazyka VBA (jazyk Visual Basic for Application), které můžete použít k identifikaci, jestli buňka nebo oblast obsahuje propojené datové typy. Tento první postup používá vlastnost HasRichDataType

Oba tyto postupy vás vyzve k výběru oblasti buněk, kterou chcete vyhodnotit, a pak se vrátí okno se zprávou s výsledky.

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 následujícím postupu se používá vlastnost 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 konečný výstřižek kódu je uživatelem definovaná funkce (UDF) a odkazujete na něj stejně jako na všechny Excel vzorce. Jednoduše zadejte =fn_IsLinkedDataType(A1),kde A1 je buňka, kterou chcete vyhodnotit.

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

Pokud chcete použít některý z těchto příkladů, stiskněte kombinaci kláves Alt+F11 a otevřete editor Visual Basic (VBE), přejděte na Vložit modul> avložte kód do nového okna, které se otevře vpravo. Když budete hotovi, můžete použít Alt+Q, abyste se Excel vrátili zpátky na konec. Pokud chcete spustit některý z prvních dvou příkladů, přejděte na kartu Vývojář >Kód > Makra > vyberte makro, které chcete spustit ze seznamu, a pak vyberte Spustit.

Potřebujete další pomoc?

Kdykoli se můžete zeptat odborníka z komunity Excel Tech nebo získat podporu v komunitách.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×