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
Tengo la siguiente situación: Tengo dos tablas con información sobre activos. Las dos tablas se vinculan a través de dos tablas: [Tabla de fechas] y una tabla que contiene información sobre cada activo [Información de activos]
[Tabla 1]: contiene información sobre todas las transacciones reservadas con activos
ID de activo, fecha, volumen de negocios de la transacción
[Tabla 2]: Contiene información sobre el tiempo de actividad de cada activo en un día determinado
ID de activo, fecha, horas de actividad
Lo que he hecho: Calculé una medida
Volumen de negocios por tiempo de actividad : SUMA (volumen de transacción) / SUM (horas de tiempo de actividad)
Lo que necesito: Una medida para cada activo que calcula el volumen de negocios por tiempo de actividad de ese activo en relación con el volumen de negocios (máximo) más alto por tiempo de actividad de cualquier activo de la base de datos. Así que en términos fáciles:
% del volumen de negocios más alto por tiempo de actividad: volumen de negocios por tiempo de actividad/volumen de negocios más alto por tiempo de actividad
La salida que necesito se vería así:
Segmentación de fechas
Tabla con estas columnas
ID de activo, volumen de negocios por tiempo de actividad, % del volumen de negocios más alto por tiempo de actividad
He probado la solución de aquí sugerir por @Zubair_Muhammad , pero eso no produce lo que necesito.
¿Quién puede ayudarme?
Hola @Lukas_Held
Creo que puede utilizar la metodología a continuación:
Asumo que tiene una medida llamada [Turnover / uptime].
La medida siguiente se puede utilizar como el denominador para su medida [% de volumen de negocios/tiempo de actividad máximo]
Max Turnover/uptime =
VAR __turnoverUptime = [Turnover / uptime]
RETURN
IF(
ISBLANK( __turnoverUptime);
-- If the asset wasn't running the given day then it returns blank
BLANK();
-- Calculating the max turnover/uptime for all selected assets for all selected dates
CALCULATE(
MAXX(
SUMMARIZE(
Table1;
AssetInformation[AssetID];
'Calendar'[Date];
"Value"; [Turnover / uptime]
);
[Value]
);
ALLSELECTED( AssetInformation);
ALLSELECTED( 'Calendar')
)
)
Si la medida anterior funciona según lo solicitado, márquela como la solución aceptada.
Kudos es apreciado.
Br
Hola @Nskv
esto se ve muy bien y lógico. Cerca de lo que intenté antes. Desafortunadamente produce 'Infinity' como un valor. ¿Alguna idea?
Necesito filtrar ciertos activos que podrían producir valores extraños, ¿esta medida responderá a filtrar ciertas asset_ids ?
Hola @Lukas_Held
Si realiza una segmentación de datos o un filtro en la página con los activos que desea incluir, se adapta.
Si utiliza la función DIVIDE(), puede insertar manualmente un valor para 'errores', es decir, en blanco o 0. DIVIDE(<numerator>, <denominator> [,<alternateresult>])
https://docs.microsoft.com/en-us/dax/divide-function-dax
Br
¡salud! Me he dado cuenta de lo que sucede. Devuelve el volumen de negocios más alto por disponibilidad en un día determinado en el período de tiempo seleccionado. Supongo que lo que tendría más sentido para mí es la mayor rotación promedio por disponibilidad durante todo el período seleted.
¿Cómo tendría que ajustar el formulario para lograrlo? Lo siento, estoy un poco fuera de mi profundidad aquí.
Arrh bien. Creo que puedes resolverlo en dos pasos:
Avg per asset for all selected dates =
IF(
ISBLANK( [Turnover / uptime]);
BLANK();
CALCULATE(
AVERAGEX(
SUMMARIZE(
Table1;
AssetInformation[AssetID];
"Value"; [Turnover / uptime]
);
[Value]
);
ALLSELECTED( 'Calendar')
)
)
Y luego ajuste su medida actual:
Max Turnover/uptime =
VAR __turnoverUptime = [Turnover / uptime]
RETURN
IF(
ISBLANK( __turnoverUptime);
-- If the asset wasn't running the given day then it returns blank
BLANK();
-- Calculating the max turnover/uptime for all selected assets for all selected dates
CALCULATE(
MAXX(
SUMMARIZE(
Table1;
AssetInformation[AssetID];
'Calendar'[Date];
"Value"; [Avg per asset for all selected dates]
);
[Value]
);
ALLSELECTED( AssetInformation);
ALLSELECTED( 'Calendar')
)
)
Espero que esto ayude
referencia si esto puede ayudar
https://community.powerbi.com/t5/Desktop/Percentage-of-subtotal/td-p/95390
https://community.powerbi.com/t5/Desktop/SUM-of-AVERAGE/td-p/197013
Creo que en el nivel de fecha que necesita tomar max (maxx) de su fórmula
O sobre todo el total
Averagex(summarize(table,table[date],"_1",[Turnover per Uptime], "_2",maxx(all(Table),[Turnover per Uptime])),divide([_1],[_2]))
Agregar bys de grupo según la necesidad
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |