Recuento del número de valores distintos de una columna

En este sencillo escenario partimos de dos tablas:

  • Productos. Tabla de dimensiones conteniendo dos campos, con un identificador de cada producto y el nombre del producto. Vemos que hay 6 productos cuyos identificadores pertenecen al rango [1, 6]:
Tabla de productos
  • Ventas: Tabla de hechos con una única columna conteniendo los identificadores de los productos vendidos. Podemos apreciar la existencia de una fila con el identificador 7 que no existe en la tabla de dimensiones anterior, lo que provoca una violación de integridad referencial:
Tabla de ventas

Si creamos una tabla calculada con los identificadores de los productos vendidos y su nombre (extraído de la tabla producto), el resultado es el siguiente:

Productos vendidos = SELECTCOLUMNS(
    Ventas;
    "Id. Producto"; Ventas[Id Producto];
    "Nombre"; RELATED(Productos[Nombre de producto])
)

Tabla de productos vendidos

Para acceder a la columna "Nombre de producto" de la tabla "Productos" utilizamos la función RELATED que nos da acceso a una columna remota.

Vemos que el producto con identificador 7 no tiene un nombre asociado. Si quisiéramos contar el número de productos vendidos distintos y para ello utilizásemos la segunda columna de la tabla anterior (la que ha recibido el nombre de "Nombre"), podríamos hacerlo con dos funciones distintas: DISTINCTCOUNTDISTINCTCOUNTNOBLANK. Si definimos dos medidas con estas funciones, tenemos lo siguiente (damos a las medidas el mismo nombre de la función usada en cada caso):

DISTINCTCOUNTNOBLANK = DISTINCTCOUNTNOBLANK('Productos vendidos'[Nombre])

DISTINCTCOUNT = DISTINCTCOUNT('Productos vendidos'[Nombre])

Si llevamos estas medidas a dos visualizaciones tipo tarjeta, tenemos:

Medidas con el recuento de los valores distintos

Comprobamos que la función DISTINCTCOUNT cuenta el número de valores distintos considerando los valores vacíos (BLANK) como un valor adicional, mientras que DISTINCTCOUNTNOBLANK excluye estos valores vacíos.

Enviado por admin el Mar, 09/04/2019 - 11:29