¿Cómo contar valores distintos en una tabla dinámica con VBA?

Para contar valores distintos en una tabla dinámica utilizando VBA en Excel, puedes seguir estos pasos detallados:

  • Preparar la Tabla de Datos:

Asegúrate de tener una tabla de datos bien estructurada en Excel que te gustaría resumir utilizando una tabla dinámica.

  • Insertar una Tabla Dinámica:

Crea una tabla dinámica basada en tus datos. Esto se puede realizar manualmente o mediante VBA.

  • Escribir el Código VBA:

A continuación, te muestro un ejemplo de cómo puedes usar VBA para crear e insertar una tabla dinámica, y después calcular el conteo de valores distintos.

Sub ContarValoresDistintos()
    Dim ws As Worksheet
    Dim rng As Range
    Dim ptCache As PivotCache
    Dim pt As PivotTable
    Dim pc As PivotField
    
    ' Establecer la hoja de cálculo activa
    Set ws = ActiveSheet
    
    ' Definir el rango de datos (asegúrate de ajustar el rango según tus datos)
    Set rng = ws.Range("A1").CurrentRegion
    
    ' Crear un caché de la tabla dinámica
    Set ptCache = ThisWorkbook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=rng)
    
    ' Añadir la tabla dinámica a la hoja de cálculo
    Set pt = ptCache.CreatePivotTable( _
        TableDestination:=ws.Range("E5"), _  ' Ajustar el destino según sea necesario
        TableName:="TablaDinamica")
    
    ' Agregar campo de fila
    With pt
        .PivotFields("NombreDelCampo").Orientation = xlRowField
    End With
    
    ' Añadir un campo calculado para contar valores distintos
    ' Aquí creamos el campo calculado
    With pt.PivotFields("NombreDelCampo") ' Ajustar el nombre de este campo
        .Calculation = xlDistinctCount
        .Orientation = xlDataField
        .Function = xlDistinctCount
        .Name = "ConteoDistintoDe_" & .Name
    End With
    
    ' Actualizar la tabla dinámica
    pt.RefreshTable
End Sub

Notas Importantes:

  • Rango de Datos: Asegúrate de que `rng` cubra correctamente tus datos. Puedes modificar `»A1″` o el rango de datos según sea necesario.
  • Campo de Datos: Reemplaza `»NombreDelCampo»` con el nombre real del campo que deseas utilizar para contar valores distintos.
  • Ubicación de la Tabla Dinámica: Cambia `TableDestination:=ws.Range(«E5»)` para ajustar el lugar donde deseas ubicar la tabla dinámica en tu hoja.
  • Función `xlDistinctCount`: Esta función específica para contar valores distintos está disponible en versiones modernas de Excel (a partir de Excel 2013 para suscriptores de Office 365). Si estás utilizando una versión anterior, es posible que necesites implementar un enfoque alternativo, como usar columnas auxiliares con fórmulas o funciones de Excel.

Este código inserta una tabla dinámica y agrega un campo que cuenta los valores distintos de un campo especificado. Asegúrate de probar y ajustar según tus necesidades específicas.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario