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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
ThomasDay
Impactful Individual
Impactful Individual

RANKX con RESUMEN Y ADDCOLUMNS

Hola compañeros DAXers,

Me está costando conseguir una columna Rankx agregada a una tabla de memoria creada por SUMMARIZE

Al final del día recibo el mensaje de error "Función 'RANKX' no admite la comparación de valores de tipo True/False con valores de tipo Integer. Considere la posibilidad de utilizar la función VALUE o FORMAT para convertir uno de los valores."

A continuación, creo un TrendsTableTemp que tiene el siguiente aspecto: (pongo ese código en la tabla create para que sepa que funciona) Y todo lo que quiero es otra columna con un Ranking de las fechas en orden descendente usando el DataMonthID (o la fecha de finalización de la medida para el caso)--1,2,3,4,5,6.

TrendsTableTemp.png

¿Alguna idea de lo que está pasando aquí?

Gracias, Tom


Aquí está el fragmento de código...

BuildTrendsTable = 
//Housekeeping to feed the table to debug
						VAR VariableName = "ADC"
						VAR ProviderNoNewtonWell = 220101
						VAR LastTrendDate = CALCULATE(LASTDATE(Tr_MeasureTrends[Measure End Date]),
                            Tr_MeasureTrends[Variable_Name] = VariableName)
						VAR LastMonthID = CALCULATE(MAX(DateTable[MonthID]), DateTable[Date] = LastTrendDate)
						VAR LastValue = CALCULATE(MAX(Tr_MeasureTrends[Variable_Value]),
                            Tr_MeasureTrends[Measure End Date]= LastTrendDate,
						    Tr_MeasureTrends[Variable_Name] = VariableName)
						VAR Direction = CALCULATE(MIN(HospVariables[Direction(1/0/-1)]),HospVariables[Variable] = VariableName)
						RETURN
//CREATE the memory table TrendsTableTemp using SUMMARIZE AND ADDCOLUMNS TABLE                        
                        VAR TrendsTableTemp = ADDCOLUMNS(
						SUMMARIZE( FILTER(Tr_MeasureTrends,Tr_MeasureTrends[Variable_Name] = VariableName 
						&& [ProvdrNo] = ProviderNoNewtonWell), 
						Tr_MeasureTrends[Measure End Date],
						Tr_MeasureTrends[ProvdrNo],
						"MetricValue" , AVERAGE(Tr_MeasureTrends[Variable_Value])),
						"DataMonthID",LOOKUPVALUE(DateTable[MonthID],DateTable[Date],Tr_MeasureTrends[Measure End Date]))
//TRY TO ADD A RANKX COLUMN                        
                        RETURN
						ADDCOLUMNS(TrendsTableTemp,"MonthRank",						
						RANKX (
						TrendsTableTemp,
						EARLIER ([MetricValue]) = [MetricValue]
							,
							[DataMonthID],
						,
						DENSE
						))

2 ACCEPTED SOLUTIONS
Greg_Deckler
Super User
Super User

@ThomasDay - Bastante seguro de que aquí es donde se encuentra su problema (negrita)

ADDCOLUMNS(TrendsTableTemp,"MonthRank",
RANKX (
TrendsTableTemp,
ANTERIOR ([MetricValue]) á [MetricValue]
,
[DataMonthID],
,
Denso
))

Pero es difícil de decir exactamente sin pruebas. Puede que le resulte útil, https://community.powerbi.com/t5/Quick-Measures-Gallery/To-Bleep-with-RANKX/m-p/1042520#M452

De lo contrario, No hay suficiente información para continuar, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

@Greg_Deckler
Sí, mis disculpas por no poner mesas de prueba y más contexto. Dicho esto, me llevó a la derecha a la respuesta con el enlace! Una vez que eliminé la función EARLIER, todo se hizo más fácil. Termina pareciéndose a lo siguiente:

ADDCOLUMNS(TrendsTableTemp,"MonthRank",

RANKX (
TrendsTableTemp,
[DataMonthID],
,
Desc
Denso
TrendsTableRANKX.png

Dado que el campo de ordenación no es un cálculo, puedo usar el valor de la "expresión" como el "valor" (sin necesidad de ANTES y puede omitir el valor).
¡Muchas gracias!

Tom

View solution in original post

5 REPLIES 5
amitchandak
Super User
Super User

@ThomasDay , Intente cambios a cambio

ADDCOLUMNS(TrendsTableTemp,"MonthRank",
RANKX (
filter(all(TrendsTableTemp),
ANTERIOR ([MetricValue]) á [MetricValue])
[DataMonthID],,
Desc
DENSE))

@amitchandak
Gracias por su ayuda y sin el beneficio de los datos que se utilizarán para las pruebas. Te agradezco el tiempo que tomaste. Para tu información, se dio lugar al error:
"La función ALL espera una referencia de tabla para el argumento '1', pero se utilizó una expresión de tabla."
--He estado teniendo ese problema al usar tablas de memoria con filtros y funciones de filtro.
Publí el fragmento que funcionó anteriormente si estás interesado.

Gracias de nuevo,

Tom

@ThomasDay Me alegra que haya encontrado una solución, también marque @Greg_Deckler y su solución como resuelto.

Greg_Deckler
Super User
Super User

@ThomasDay - Bastante seguro de que aquí es donde se encuentra su problema (negrita)

ADDCOLUMNS(TrendsTableTemp,"MonthRank",
RANKX (
TrendsTableTemp,
ANTERIOR ([MetricValue]) á [MetricValue]
,
[DataMonthID],
,
Denso
))

Pero es difícil de decir exactamente sin pruebas. Puede que le resulte útil, https://community.powerbi.com/t5/Quick-Measures-Gallery/To-Bleep-with-RANKX/m-p/1042520#M452

De lo contrario, No hay suficiente información para continuar, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler
Sí, mis disculpas por no poner mesas de prueba y más contexto. Dicho esto, me llevó a la derecha a la respuesta con el enlace! Una vez que eliminé la función EARLIER, todo se hizo más fácil. Termina pareciéndose a lo siguiente:

ADDCOLUMNS(TrendsTableTemp,"MonthRank",

RANKX (
TrendsTableTemp,
[DataMonthID],
,
Desc
Denso
TrendsTableRANKX.png

Dado que el campo de ordenación no es un cálculo, puedo usar el valor de la "expresión" como el "valor" (sin necesidad de ANTES y puede omitir el valor).
¡Muchas gracias!

Tom

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.