A csatolt adattípusok először 2018 júniusában jelentek meg a Microsoft 365-höz készült Excel-ben, ezért előfordulhat, hogy más funkciók nem tudják azonosítani őket. Ez különösen igaz akkor, ha más funkciókat szeretne használni annak feltételes meghatározására, hogy egy cella tartalmaz-e csatolt adattípust. Ez a cikk a cellákban található csatolt adattípusok azonosításához használható néhány kerülő megoldást ismertet.
Megjegyzés
A csatolt adattípusok csak a világszerte több-bérlős ügyfelek (standard Microsoft 365-fiókok) számára érhetők el.
Képletek
Mindig írhat képleteket, amelyek adattípusokra hivatkoznak. Ha azonban egy csatolt adattípusú cella szövegét szeretné kinyerni a SZÖVEG függvénnyel, #VALUE! típusú hibát jelenít meg.
Egy lehetséges megoldás, ha a MEZŐÉRTÉK függvényt használja, és a Név mezőt adja meg a field_name argumentumhoz. Ha az alábbi példában az A1 cella részvény adattípust tartalmazna, akkor a képlet a tőzsde nevét adja eredményül.
=MEZŐÉRTÉK(A1;"Név")
Ha azonban az A1 cella nem tartalmaz csatolt adattípust, a MEZŐÉRTÉK függvény #FIELD! hibát ad vissza. Ha ki szeretné értékelni, hogy egy cella tartalmaz-e csatolt adattípust, használhatja az alábbi képletet, amely a HIBÁS függvény segítségével azt vizsgálja, hogy a MEZŐÉRTÉK függvény hibát ad-e vissza.
=HA(HIBÁS(MEZŐÉRTÉK(A2,"Név")),"Ez a cella nem csatolt adattípusú","Ez a cella csatolt adattípusú")
Ha a képlet kiértékelése hibát ad, akkor "Ez a cella nem csatolt adattípusú" szöveget adja vissza, ellenkező esetben "Ez a cella csatolt adattípusú" szöveget adja vissza.
Ha egyszerűen csak el akarja rejteni a #FIELD! hibaüzenet jelenik meg, a következőket használhatja:
=HAHIBA(MEZŐÉRTÉK(A1;"Név");"")
Ez a képlet hiba esetén üres cellát ad vissza.
Feltételes formázás
A cellák feltételes formázással adhatók meg attól függően, hogy rendelkeznek-e csatolt adattípusokkal. Először ki kell jelölnie azokat a cellákat, amelyek feltételes formázást igényelnek, majd a Kezdőlapra> kell lépnieFeltételes formázás>Új szabály>Képlet használata... A képlethez a következőt kell használnia:
=NOT(ISERROR(FIELDVALUE(A1,"Name")))
ahol az A1 cella a kiértékelni kívánt tartomány legfelső cellája. Ezután alkalmazza a kívánt formátumot.
Ebben a példában, ha az A1 cella érvényes mezőnevet tartalmaz a "Név" számára, akkor a képlet IGAZ értéket ad vissza, és a program alkalmazza a formázást. Ha az A1 cella nem tartalmaz csatolt adattípust, akkor a képlet a HAMIS értéket adja vissza, és nem alkalmazza a program a formázást. A NOT értéket eltávolíthatja, ha ki szeretné emelni az érvényes csatolt adattípusokat nem tartalmazó cellákat.
VBA
Számos VBA- (Visual Basic for Applications) módszer létezik annak azonosítására, hogy egy cella vagy tartomány csatolt adattípusokat tartalmaz-e. Az első eljárás a HasRichDataType tulajdonságot használja.
Mindkét eljárás kéri, hogy jelöljön ki egy kiértékelni kívánt cellatartományt, majd az eredményt tartalmazó üzenetpanelt jelenít meg.
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
A következő eljárás a LinkedDataTypeState tulajdonságot használja.
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
Ez a végleges kódrészlet egy felhasználó által definiált függvény (UDF), és ugyanúgy hivatkozhat rá, mint bármely más Excel-képletre. Egyszerűen írja be az =fn_IsLinkedDataType(A1) képletet, ahol az A1 a kiértékelni kívánt cella.
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
Ha szeretné használni a fenti példák bármelyikét, az Alt+F11 billentyűkombinációt lenyomva nyissa meg a Visual Basic Editort (VBE), válassza a Modul beszúrása> elemet, és illessze be a kódot a jobb oldalon megnyíló új ablakba. Ha végzett, az Alt+Q billentyűkombinációval léphet vissza az Excelbe. Az első két példa futtatásához nyissa meg a Fejlesztőeszközök lapot>Kódmakrók>> jelölje ki a futtatni kívánt makrót a listában, majd válassza a Futtatás gombot.
További segítségre van szüksége?
Kérdéseivel mindig felkeresheti az Excel technikai közösség egyik szakértőjét, vagy segítséget kérhet a közösségekben.