Desempate en Rankin

Hola a todos

tengo una duda que no me ha dejado dormir, 

Estoy realizando un ranking sobre recurrencia, para esto debo hacer un conteo de los numeros telefonicos para conocer cuantas veces se han comunicado.

El problema se presenta cuando se realiza el rankx debido a que en la columna de conteo se repetin registros. 

¿Como puede hacer un desempate sobre el rank para tener numeracion consecutiva y no repetidos?

Hola Jorge,

Efectivamente la función RANKX no permite desempatar. Lo que he hecho yo en alguna ocasión ha sido sumar a la columna que quiero "rankear" un número aleatorio entre 0 y 1 (con RAND). Que sea entre 0 y 1 es crítico para que el valor entero no cambie. La cuestión es que, tras añadir el valor aleatorio, la probabilidad de que haya dos números idénticos es casi nula, pero el orden (considerando la parte entera) no cambia. Te pongo un ejemplo: Parto de la siguiente tabla:

Tabla de datos

Ahora creo una tabla calculada con el recuento por número:

Resumen = 
    SUMMARIZE(
        data;
        data[Número];
        "N";
        COUNT(data[Número])
    )

Recuento de llamadas

Creo una nueva columna añadiendo el número aleatorio:

N2 = Resumen[N]+RAND()

Y rankeo esta última en otra columna calculada:

Rank = RANKX(Resumen; Resumen[N2]; ; ;Skip)

Y éste es el resultado (llevado todo a un objeto visual tipo tabla):

Resultado

Obviamente el rango para las igualdades es aleatorio (aquí B aparece por delante de A, pero podría ser al revés). Si quisieras que fuese un valor fijo, en lugar de añadir un número aleatorio podrías sumar a cada fila i-1/N, siendo i el número de fila y N el número total de filas. Pongo i-1 para que la primera fila tome el valor 0 y la última no llegue nunca a N (en cuyo caso estaríamos sumando 1 y cambiaríamos de rango).

Dime si te sirve

Un saludo

Ismael

Enviado por JorgeSolor el Jue, 14/05/2020 - 04:46