Forum Discussion

CSSR's avatar
CSSR
Frequent Visitor
5 years ago
Solved

Entendimiento de RANKX

Hola amigos,

Quiero saber por qué cuando uso (1.) código / procedimiento para la clasificación no funciona y cuando uso (2.) código / procedimiento está funcionando bien. ¿Cuál es la razón/lógica detrás?
(1.)

Solicitantes de rango (no funciona1)
RANKX(ALL(DB_01[Nombre completo del solicitante]),COUNTX(DB_01, DB_01 [num])

Solicitantes de rango (no funciona2)
RANKX(ALL(DB_01[Nombre completo del solicitante]),COUNT(DB_01 [num])


(2.)
conteo de solicitudesCOUNT(DB_01[num])
Solicitantes de rango (en funcionamiento) -RANKX(ALL(DB_01[Nombre completo del solicitante]),[recuento de solicitudes])

Solicitantes de rango (working1)

RANKX(
ALL(DB_01[Nombre completo del solicitante]),
CALCULATE(
COUNT(DB_01[num]),
ALLEXCEPT(DB_01,DB_01[Nombre completo del solicitante])
)
,
,DESC)

Gracias de antemano por sus comentarios ! Simplemente no entiendo por qué necesito crear una medida para contar las solicitudes y luego usarla en la función RANKX en lugar de usar la función COUNT directamente en ella.

  • hola @CSSR

    El otro escollo común es el uso de una fórmula DAX para agregar filas sin ajustar la expresión en una función CALCULATE. En los ejemplos anteriores, siempre usamos la medida Sales Amount como expresión para usar en la clasificación. Si utiliza una función de agregación como SUMX, debe tener en cuenta que la expresión se evalúa para cada fila de la tabla que se pasa como primer argumento a RANKX. El contexto de fila definido en esta iteración no se transforma en un contexto de filtro a menos que CALCULATE invoque una transición de contexto, que es una operación implícita al evaluar una medida. Por lo tanto, para cada fila el contexto de filtro es siempre el mismo (es decir, el filtro existente en la celda donde se evalúa RANKX) y todos los elementos tienen el mismo rango de 1 de esta manera. La fórmula correcta simplemente ajusta la expresión en una función CALCULATE que realiza la transición de contexto para cada fila de la tabla iterada por RANKX.

    saludos

    Lin

2 Replies