Los tipos de datos vinculados se publicaron por primera vez en Excel para Microsoft 365 junio de 2018 y, como tal, es posible que otras características no puedan identificarlos. Esto puede ser especialmente cierto cuando desea usar otras características para identificar condicionalmente si una celda contiene o no un tipo de datos vinculado. En este artículo se explican algunas soluciones alternativas que puede usar para identificar los tipos de datos vinculados en las celdas.

Nota: Los tipos de datos vinculados solo están disponibles para clientes multiempresa de todo el mundo (cuentas Microsoft 365 usuarios).

Fórmulas

Siempre puede escribir fórmulas que hacen referencia a tipos de datos. Sin embargo, si desea extraer el texto de una celda con un tipo de datos vinculado mediante la función TEXTO, verá una #VALUE! .

Una solución alternativa es usar la función VALOR.CAMPO y especificar el campo Nombre para el field_name argumento. En el ejemplo siguiente, si la celda A1 contenía un tipo de datos de acciones, la fórmula devolvería el nombre de la acción.

=VALOR.CAMPO(A1;"Nombre")

Sin embargo, si la celda A1 no contiene un tipo de datos vinculado, la función VALOR.CAMPO devolverá un error #FIELD!. Si desea evaluar si una celda contiene o no un tipo de datos vinculado, puede usar la siguiente fórmula, que usa la función ESERROR para comprobar si la función VALOR.CAMPO devolverá un error.

=SI(ESERROR(VALOR.CAMPO(A2;"Nombre")),"Esta celda no tiene un tipo de datos vinculado","Esta celda tiene un tipo de datos vinculado")

Si la fórmula se evalúa como un error, devolverá el texto "Esta celda no tiene un tipo de datos vinculado", de lo contrario, devolverá "Esta celda tiene un tipo de datos vinculado".

Si simplemente desea suprimir el #FIELD! puede usar:

=SIERROR(VALOR.CAMPO(A1;"Nombre"),"")

Lo que devolverá una celda en blanco si hay un error.

Formato condicional

Puede aplicar formato condicional a una celda en función de si tiene o no un tipo de datos vinculado. Primero seleccionaría las celdas que necesitan el formato condicional y, a continuación, ir a Inicio > Formato condicional > Nueva regla > Usar una fórmula... Para la fórmula, usaría lo siguiente:

=NO(ESERROR(VALOR_CAMPO(A1;"Nombre")))

Donde la celda A1 es la celda superior del rango que desea evaluar. A continuación, aplique el formato que desee.

En este ejemplo, si la celda A1 contiene un nombre de campo válido para "Nombre", la fórmula devuelve VERDADERO y se aplicará el formato. Si la celda A1 no contiene un tipo de datos vinculado, la fórmula devuelve FALSO y no se aplicará ningún formato. Puede quitar la no si desea resaltar las celdas que no contienen tipos de datos vinculados válidos en su lugar.

VBA

Hay varios métodos de VBA (Visual Basic para Aplicaciones) que puede usar para identificar si una celda o rango contiene tipos de datos vinculados. Este primer procedimiento usa la propiedad HasRichDataType

Ambos procedimientos le pedirán que seleccione un rango de celdas para evaluar y, después, devuelva un cuadro de mensaje con los resultados.

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

En este procedimiento siguiente se usa la propiedad 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

Este fragmento de código final es una función definida por el usuario (UDF) y hace referencia a ella igual que cualquier otra Excel fórmula. Simplemente escriba =fn_IsLinkedDataType(A1), donde A1 es la celda que desea evaluar.

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

Para usar cualquiera de estos ejemplos, presione Alt+F11 para abrir el Editor de Visual Basic (VBE), vaya a Insertar> Moduley pegue el código en la nueva ventana que se abre a la derecha. Puede usar Alt+Q para volver a Excel cuando haya terminado. Para ejecutar cualquiera de los dos primeros ejemplos, vaya a la pestaña Programador> Código> Macros> seleccione la macro que desea ejecutar en la lista y, a continuación, seleccione Ejecutar.

¿Necesitas más ayuda?

Siempre puede preguntar a un experto en la Excel Tech Community u obtener soporte técnico en la Comunidad de respuestas.

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cómo de satisfecho está con la calidad de la traducción?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×