Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

I tipi di dati collegati sono stati rilasciati per la prima volta in Excel per Microsoft 365 giugno 2018 e, di conseguenza, altre funzionalità potrebbero non essere in grado di identificarli. Questo può essere particolarmente vero quando si vogliono usare altre caratteristiche per identificare in modo condizionale se una cella contiene un tipo di dati collegato o meno. Questo articolo illustra alcune soluzioni alternative che è possibile usare per identificare i tipi di dati collegati nelle celle.

Nota: I tipi di dati collegati sono disponibili solo per i client multi-tenant in tutto il mondo (account Microsoft 365 standard).

Formule

È sempre possibile scrivere formule che fanno riferimento a tipi di dati. Tuttavia, se si vuole estrarre il testo di una cella con un tipo di dati collegato usando la funzione TESTO, si otterrà un #VALUE! .

Una soluzione alternativa consiste nell'usare la funzione VALORE.CAMPO e specificare il campo Nome per l'argomento field_name campo. Nell'esempio seguente, se la cella A1 contiene un tipo di dati azioni, la formula restituirà il nome del titolo.

=VALORE.CAMPO(A1;"Nome")

Tuttavia, se la cella A1 non contiene un tipo di dati collegato, la funzione VALORE.CAMPO restituirà un errore #FIELD!. Se si vuole valutare se una cella contiene o meno un tipo di dati collegato, è possibile usare la formula seguente, che usa la funzione VAL.ERRORE per verificare se la funzione VALORE.CAMPO restituirà un errore.

=SE(VAL.ERRORE(VALORE.CAMPO(A2;"Nome")),"Questa cella non ha un tipo di dati collegato","Questa cella ha un tipo di dati collegato")

Se la formula restituisce un errore, restituirà il testo "Questa cella non ha un tipo di dati collegato", altrimenti restituirà "Questa cella ha un tipo di dati collegato".

Se si vuole semplicemente eliminare il #FIELD! , è possibile usare:

=ERRORE.SE(VALORE.CAMPO(A1;"Nome");"")

Che restituirà una cella vuota in caso di errore.

Formattazione condizionale

È possibile formattare in modo condizionale una cella in base al tipo di dati collegato o meno. Selezionare prima di tutto le celle che necessitano della formattazione condizionale e quindi passare a Home > Formattazione condizionale > Nuova regola > Usare una formula... Per la formula si userebbe quanto segue:

=NON(VAL.ERRORE(VALORE.CAMPO(A1;"Nome")))

Dove la cella A1 è la prima cella dell'intervallo da valutare. Applicare quindi il formato desiderato.

In questo esempio, se la cella A1 contiene un nome di campo valido per "Nome", la formula restituisce VERO e verrà applicata la formattazione. Se la cella A1 non contiene un tipo di dati collegato, la formula restituisce FALSO e non verrà applicata alcuna formattazione. È possibile rimuovere NOT se si vuole evidenziare le celle che non contengono tipi di dati collegati validi.

VBA

Esistono diversi metodi VBA (Visual Basic, Applications Edition) che è possibile usare per identificare se una cella o un intervallo contiene tipi di dati collegati. Questa prima procedura usa la proprietà HasRichDataType

Entrambe queste procedure richiederanno di selezionare un intervallo di celle da valutare, quindi restituiranno una finestra di messaggio con i risultati.

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

Questa procedura successiva usa la proprietà 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

Questo frammento di codice finale è una funzione definita dall'utente (UDF) a cui si fa riferimento come qualsiasi altra formula Excel definita dall'utente. Immettere semplicemente =fn_IsLinkedDataType(A1), dove A1 è la cella da valutare.

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

Per usare uno di questi esempi, premere ALT+F11 per aprire Visual Basic Editor (VBE), quindi passare a Inserisci modulo> eincollare il codice nella nuova finestra che si apre a destra. È possibile usare ALT+Q per tornare al Excel al termine. Per eseguire uno dei primi due esempi, passare alla scheda Sviluppo> Codice >Macro> selezionare la macro da eseguire nell'elenco e quindi scegliere Esegui.

Servono altre informazioni?

È sempre possibile rivolgersi a un esperto della Tech Community di Excel o ottenere supporto nelle Community.

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×