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.
Hola, estoy tratando de calcular el cambio mes a mes para que pueda trazar los valores netos de ganancia/pérdida en un gráfico de líneas. ¿Es una columna calculada o una medida la mejor manera de hacerlo? Encontré otros mensajes que sugestó hacer una columna de prev_month, así que lo hice usando DAX, pero no estoy seguro de cómo proceder. Mi conjunto de datos tiene varios campos, necesito la diferencia de MoM acumulada en ese nivel (como un grupo por en SQL) - imagen aquí para demostrar la necesidad.
Mi preocupación es si tienes el calendario unido correctamente. La imagen muestra que la columna de fecha tiene fechas replicadas. Debe haber más condiciones porque no sabe qué rol se considera como el valor del mes actual.
saludos
Paul
Hola Paul, Las fechas se replican porque hay varias combinaciones de atributos que hacen que cada fila sea única. No hay cálculo de "mes actual" que necesito, necesito ser capaz de volver atrás en el tiempo y calcular la ganancia / pérdida neta para cada mes, específico de esas combinaciones de atributos para que sólo comparemos manzanas con manzanas. Por favor, vea mi imagen de los datos de muestra arriba.
Traté de crear un
Rango (medida):
Rango de Rango (Rank)
&
MoM (medida):
Aún no tengo solución para esto. ¿Alguna otra idea?
Aquí está la definición de la tabla
Gain_Loss:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMtU31DcyMLRU0lFyBOIIII4EYlOlWJ1oJRNUSZBEFBCbgyWNsUsaY9MZAZU0wyUJ0m2hFBsLAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [date_column = _t, product_name = _t, speed = _t, region = _t, value = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"date_column", type date}, {"value", type number}})
in
#"Changed Type"
y aquí está la medida:
Net_Gain :=
var e=edate(max(Gain_Loss[date_column]),-1)
return sum(Gain_Loss[value])-CALCULATE(sum(Gain_Loss[value]),ALL(Gain_Loss[date_column]),Gain_Loss[date_column]=e)
Produce algunos resultados inesperados, causados por la falta de datos del "mes anterior". El problema es que querrá distinguir entre la ausencia de datos y un caso cuando el valor del mes anterior era realmente cero.
Aquí hay otras dos variaciones.
Net_Gain :=
var pm=CALCULATE(sum(Gain_Loss[value]),dateadd(Gain_Loss[date_column],-1,MONTH))
return if(ISBLANK(pm),pm,sum(Gain_Loss[value])-pm)
Ese todavía tiene algo de rareza en los totales. Aquí hay uno que no muestra totales en absoluto.
Net_Gain =
var pm=CALCULATE(sum(Gain_Loss[value]),PREVIOUSMONTH(Gain_Loss[date_column]))
return if(ISBLANK(pm),pm,sum(Gain_Loss[value])-pm)
@sk824a ,
Aquí está el cálculo de la medida mes a mes:
Marque la tabla de fechas como tabla de fechas:
Si la tabla de fechas tiene otros campos además de las fechas, ¿es un problema?
@sk824a , la práctica recomendada (para futuras demandas) es que tiene tabla de fechas.
En este caso se puede marcar como tabla de fechas, no se arruinará el modelo. El único must-have en esta tabla es tener la columna de fecha. Basado en esta columna, todas las funciones de inteligencia de tiempo funcionarán.
Puede encontrar tablas de fechas en línea en Dax.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |