Tipurile de date legate au fost lansate pentru prima dată în Excel pentru Microsoft 365 din iunie 2018 și, ca atare, este posibil ca alte caracteristici să nu le poată identifica. Acest lucru poate fi valabil mai ales atunci când doriți să utilizați alte caracteristici pentru a identifica în mod condiționat dacă o celulă conține un tip de date legat sau nu. Acest articol explică câteva soluții pe care le puteți utiliza pentru a identifica tipurile de date legate din celule.
Notă: Tipurile de date legate sunt disponibile numai pentru clienții din întreaga lume cu mai multe entități găzduite (conturi Microsoft 365 standard).
Formule
Puteți scrie întotdeauna formule care fac referire la tipurile de date. Totuși, dacă doriți să extrageți textul unei celule cu tipul de date legat, utilizând funcția TEXT, veți primi o #VALUE! eroare.
O soluție este să utilizați funcția FIELDVALUE și să specificați câmpul Name pentru argumentul field_name . În exemplul următor, dacă celula a1 conține un tip de date bursiere, atunci formula va returna numele stocului.
= FIELDVALUE (a1; "nume")
Cu toate acestea, dacă celula a1 nu conține un tip de date legat, atunci funcția FIELDVALUE va returna o eroare #FIELD!. Dacă doriți să evaluați dacă o celulă conține sau nu un tip de date legat, puteți utiliza următoarea formulă, care utilizează funcția ISERROR pentru a testa dacă funcția FIELDVALUE va returna o eroare.
= IF (ISERROR (FIELDVALUE (a2; "nume")), "această celulă nu are un tip de date legat", "această celulă are un tip de date legat")
Dacă formula se evaluează la o eroare, atunci va returna textul "această celulă nu are un tip de date legat", altfel, se va returna "această celulă are un tip de date legat".
Dacă doriți pur și simplu să suprimați #FIELD! eroare, puteți utiliza:
= IFERROR (FIELDVALUE (a1, "nume"), "")
Care va returna o celulă necompletată dacă există o eroare.
Formatarea condițională
Puteți să formatați condiționat o celulă pe baza dacă are sau nu un tip de date legat. Mai întâi Selectați celulele care au nevoie de formatarea condiționată, apoi accesați pagina de pornire > formatarea condițională > regulă nouă > Utilizați o formulă... Pentru formulă, utilizați următoarele:
= NOT (ISERROR (FIELDVALUE (a1; "nume")))
Unde celula a1 este celula de sus din zona pe care doriți să o evaluați. Apoi aplicați formatul dorit.
În acest exemplu, dacă celula a1 conține un nume de câmp valid pentru "nume", atunci formula returnează TRUE și formatarea se va aplica. Dacă celula a1 nu conține un tip de date legat, atunci formula returnează FALSE și nu se va aplica nicio formatare. Puteți elimina nu dacă doriți să evidențiați celulele care nu conțin în schimb tipuri de date valide legate.
VBA
Există mai multe metode VBA (Visual Basic for Applications) pe care le puteți utiliza pentru a identifica dacă o celulă sau o zonă conține tipuri de date legate. Această primă procedură utilizează proprietatea HasRichDataType.
Ambele proceduri vă vor solicita să selectați o zonă de celule de evaluat, apoi să returnați o casetă de mesaj cu rezultatele.
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
Următoarea procedură utilizează proprietatea 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
Acest fragment de cod final este o funcție definită de utilizator (UDF) și o referință la fel ca orice altă formulă Excel. Pur și simplu introduceți =fn_IsLinkedDataType (a1), unde a1 este celula pe care doriți să o evaluați.
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
Pentru a utiliza oricare dintre aceste exemple, apăsați Alt + F11 pentru a deschide Visual Basic Editor (VBE), apoi accesați Inseraremodul> și lipiți codul în fereastra nouă care se deschide în partea dreaptă. Puteți utiliza alt + Q pentru a ieși din nou în Excel când ați terminat. Pentru a executa oricare dintre primele două exemple, accesați fila dezvoltator> cod> macrocomenzi> selectați macrocomanda pe care doriți să o difuzați din listă, apoi selectați rulare.
Aveți nevoie de ajutor suplimentar?
Puteți întreba întotdeauna un expert de la Excel Tech Community, puteți obține asistență de la comunitatea Answers sau puteți sugera o caracteristică nouă sau o îmbunătățire pe Excel UserVoice.
Notă: Această pagină a fost tradusă automatizat și poate conține erori gramaticale sau inexactități. Scopul nostru este ca acest conținut să vă fie util. Ne puteți spune dacă informațiile au fost utile? Aici se află articolul în limba engleză, ca referință.