Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Data Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Obtener valores únicos dentro de valores distintos

Hola gente,

Estoy tratando de obtener el número de valores uninque dentro de una medida de valores distintos. El objetivo es mostrar una columna apilada que muestre el número total de clientes, el número distinto de clientes para ese año, los clientes recurrentes y el número de nuevos clientes para cada año que no aparecieron en años anteriores.

He podido mostrar 3 de los 4 elementos en un solo gráfico, pero no puedo calcular correctamente los nuevos clientes para cada año que no aparecen en años anteriores. Jugué con instrucciones "IF", counta / x y tablas con fechas mínimas, pero no puedo averiguar cómo mostrar este subconjunto de datos.

Mi idea ha sido centrarse en una instrucción "IF" que comprueba si se hace referencia a un cliente único en años anteriores.

Los datos que estoy utilizando son muy simples. Nombre y fecha del cliente (con jerarquía).

Fecha del nombre del cliente

A-cliente enero de 2000

A-cliente enero 2010

A-cliente enero 2021

B-Client enero de 2005

B-Client Enero 2015

B-Client Enero 2021

C-Client Enero 2021

D-Client enero de 2000

D-Client enero de 2005

D-Client Enero 2015

D-Client Enero 2021

Los resultados deben haber contado cada nuevo cliente para cada año comparando la fecha actual con fechas anteriores.

2000 2005 2010 2015 2021

2 1 0 0 1

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @kbruce ,

He creado un archivo pbix de ejemplo(ver adjunto) para usted, por favor, compruebe si eso es lo que desea.

1. Crear una columna calculada para obtener el año

Year = YEAR('Table'[Date])

2. Cree dos medidas como se indica a continuación para obtener el recuento de nuevos clientes

Measure = 
VAR _minyear =
    CALCULATE ( MIN ( 'Table'[Year] ), ALL ( 'Table'[Year] ) )
VAR _curyear =
    SELECTEDVALUE ( 'Table'[Year] )
VAR _preclients =
    CALCULATETABLE (
        DISTINCT ( 'Table'[Client name] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Year] < _curyear )
    )
VAR _curclients =
    CALCULATETABLE (
        DISTINCT ( 'Table'[Client name] ),
        FILTER ( 'Table', 'Table'[Year] = _curyear )
    )
RETURN
    IF (
        _curyear = _minyear,
        DISTINCTCOUNT ( 'Table'[Client name] ),
        COUNTROWS ( EXCEPT ( _curclients, _preclients ) )
    )
Count of new clients = SUMX ( VALUES ( 'Table'[Year] ), [Measure] )

yingyinr_0-1627284653009.png

Saludos

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Casi estoy ahí. No tomé en consideración múltiples instancias de un cliente en el mismo año, pero @yingyinr lo hice. Creo que estoy todo listo con estas dos respuestas.

Tras una revisión/retoque adicional, @yingyinr solución no es correcta y no resuelve la última parte de lo que se necesita.

El cliente A aparece varias veces en el mismo año @FrankAT está más cerca, pero la medida que calcula la columna agrega un 1 junto a cada uno de los duplicados, a continuación. Necesito eliminar los duplicados para obtener un recuento preciso.

A-cliente enero de 2000

A-cliente enero de 2000

A-cliente enero de 2000

No @kbruce ,

Como se comprueba en los datos de la tabla en su primer post, estos tres clientes A-cliente son de diferentes años (2000,2010 y 2021) por separado. Así que el cliente A-cliente no es valor duplicado en el mismo año... ¿Podría proporcionar algunos datos de ejemplo con clientes duplicados y su resultado esperado real con la lógica de cálculo correcta y ejemplos específicos. Gracias.

yingyinr_0-1627439716399.png

Saludos

Syndicate_Admin
Administrator
Administrator

No @kbruce ,

He creado un archivo pbix de ejemplo(ver adjunto) para usted, por favor, compruebe si eso es lo que desea.

1. Crear una columna calculada para obtener el año

Year = YEAR('Table'[Date])

2. Cree dos medidas como se indica a continuación para obtener el recuento de nuevos clientes

Measure = 
VAR _minyear =
    CALCULATE ( MIN ( 'Table'[Year] ), ALL ( 'Table'[Year] ) )
VAR _curyear =
    SELECTEDVALUE ( 'Table'[Year] )
VAR _preclients =
    CALCULATETABLE (
        DISTINCT ( 'Table'[Client name] ),
        FILTER ( ALL ( 'Table' ), 'Table'[Year] < _curyear )
    )
VAR _curclients =
    CALCULATETABLE (
        DISTINCT ( 'Table'[Client name] ),
        FILTER ( 'Table', 'Table'[Year] = _curyear )
    )
RETURN
    IF (
        _curyear = _minyear,
        DISTINCTCOUNT ( 'Table'[Client name] ),
        COUNTROWS ( EXCEPT ( _curclients, _preclients ) )
    )
Count of new clients = SUMX ( VALUES ( 'Table'[Year] ), [Measure] )

yingyinr_0-1627284653009.png

Saludos

Syndicate_Admin
Administrator
Administrator

No @kbruce ,

primero cree dos nuevas columnas calculadas, una con número de año y la otra de esta manera:

21-07-_2021_22-07-32.png

Utilice la siguiente medida en una matriz:

21-07-_2021_22-08-46.png

Con un cordial saludo desde la ciudad donde la leyenda del 'Gaitero pied de Hamelin' está en casa
FrankAT (Orgulloso de ser un Datanaut)

Helpful resources

Announcements
Fabric Data Days is here Carousel

Fabric Data Days 2026

Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.

May Power BI Update Carousel

Power BI Monthly Update - May 2026

Check out the May 2026 Power BI update to learn about new features.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Kudoed Authors