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.