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 escribir una medida DAX eficiente, pero me sigue dando un error diciendo que no hay suficiente memoria.
Tengo 4 mesas. Los 3 siguientes en la imagen, así como una tabla de fechas, que tiene una fila desde la fecha mínima hasta la fecha máxima de la tabla de vehículos.
Quiero crear una tabla/gráfico final que tenga el siguiente aspecto, con la regla
Fo cada fecha individual entre los vehículos válidos desde y hasta la fecha,
¿Cuál es su disponibilidad? (si hay una fecha de mantenimiento, entonces se debe marcar como "mantenimiento", si hubo un viaje en esa fecha, debe ser "utilizado" más "disponible" )
También quiero crear un gráfico que cuente las filas de cada fecha para ver cuántos coches se están utilizando, no se utilizan y mantienen.
Aquí está mi medida existente que está dando errores de memoria.
Usar medidas (Use Measure)
Var var_maintenance - CALCULATE(
FIRSTNONBLANK('Tabla de mantenimiento'[Coche],1),
FILTER('Tabla de mantenimiento',
'Tabla de mantenimiento'[Coche] - RELACIONADO(Tabla de vehículos[Coche]) &&
'Tabla de mantenimiento'[Fecha de mantenimiento] - RELATED('Date'[Date])
)
)
devolución
SWITCH(TRUE(),
var_maintenance <> BLANK(), "Mantenimiento",
sum(Trips Table[Distance Travelled]) - BLANK(), "Not Used",
"Utilizado"
)
Hola
Comparta esas 3 tablas en un formato que se puede pegar en un libro de MS Excel.
Gracias @v-alq-msft . Anteriormente lo había hecho mediante Power Query, expandiendo la tabla.
Esperaba evitar eso, ya que termino con una mesa extremadamente grande.
@Ashish_Mathur, aquí están las mesas
Vehículo
Coche | De | Para |
A | 1/01/2020 | 10/01/2020 |
B | 5/01/2020 | 12/01/2020 |
C | 7/01/2020 | 14/01/2020 |
Mtc
Coche | Maint Date |
A | 2/01/2020 |
A | 3/01/2020 |
A | 5/01/2020 |
B | 6/01/2020 |
C | 8/01/2020 |
C | 10/01/2020 |
Viajes
Coche | Fecha | Distancia |
A | 1/01/2020 | 10.1 |
A | 8/01/2020 | 15 |
B | 7/01/2020 | 33.5 |
B | 8/01/2020 | 36.2 |
B | 9/01/2020 | 12.5 |
C | 7/01/2020 | 19.8 |
C | 9/01/2020 | 21.2 |
C | 11/01/2020 | 12.3 |
C | 13/01/2020 | 13.5 |
Hola
Puede descargar mi archivo PBI desde aquí.
Espero que esto ayude.
Gracias @Ashish_Mathur
Esperaba evitar crear una tabla adicional.
Quería lograr el resultado con medidas
3 medidas - 1 cada una para determinar "utilizado" "no utilizado" y "mantenimiento" con el fin de crear un gráfico de columnas apiladas que muestra estos 3 recuentos por día
Hola
Qué tabla adicional he creado. Definitivamente se requieren vehículos únicos y mesas de calendario. Sólo se ha utilizado 1 medida.
Hola
@Ashish_Mathur , me refiero a la ampliación de la tabla Vehículos.
Tengo varios miles de vehículos, y si expando esa mesa para tener 1 fila por cita, termino con una mesa masiva.
Quería evitar esta mesa masiva, pero si esta es la única manera posible o la mejor manera, entonces esa es la forma en que lo haré.
Gracias de nuevo
Hola
Esa es la única manera en que soy consciente de resolver la pregunta. Si mi respuesta anterior ayudó, por favor márquela como Respuesta.
Hola, @trevor_chaitow
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Calendario (una tabla calculada):
Calendar = CALENDAR(MIN(Vehicle[From Date]),MAX(Vehicle[To Date]))
Tabla (una tabla calculada):
Table =
var tab =
UNION(
ADDCOLUMNS(
GENERATESERIES(
LOOKUPVALUE(Vehicle[From Date],Vehicle[Car],"A"),
LOOKUPVALUE(Vehicle[To Date],Vehicle[Car],"A"),
1
),
"Car",
"A"
),
ADDCOLUMNS(
GENERATESERIES(
LOOKUPVALUE(Vehicle[From Date],Vehicle[Car],"B"),
LOOKUPVALUE(Vehicle[To Date],Vehicle[Car],"B"),
1
),
"Car",
"B"
),
ADDCOLUMNS(
GENERATESERIES(
LOOKUPVALUE(Vehicle[From Date],Vehicle[Car],"C"),
LOOKUPVALUE(Vehicle[To Date],Vehicle[Car],"C"),
1
),
"Car",
"C"
)
)
var newtab =
ADDCOLUMNS(
tab,
"Usage",
IF(
COUNTROWS(
FILTER(
Maintenance,
[Car]=EARLIER([Car])&&
[Maintenance Date]=EARLIER([Value])
)
)>0,
"Maintenance",
IF(
COUNTROWS(
FILTER(
Trips,
[Car]=EARLIER([Car])&&
[Date]=EARLIER([Value])
)
)>0,
"Used",
"Available"
)
)
)
var t =
ADDCOLUMNS(
newtab,
"Distance",
IF(
[Usage]="Used",
LOOKUPVALUE(Trips[Distance Travelled],Trips[Car],[Car],Trips[Date],[Value])
)
)
return
t
Existe una relación entre 'Calendario' y 'Tabla'. Puede crear un measue como se muestra a continuación.
Result = COUNTROWS('Table')
Resultado:
Mesa:
Saludos
Allan
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@trevor_chaitow , Crear una tabla de fechas y Coche. Consulte el archivo de cómo crear utilizando distinto. Si es necesario
El vehículo al que no te unes a Date. Otros dos se unen. Uníos a los tres con El coche.
Current: CALCULATE(COUNTx(FILTER(Table,Table[From Date]<-max('Date'[Date]) && ( Table[To Date]>max('Date'[Date]))),(Table[Car])))
Crear dimensión - https://www.dropbox.com/s/op9lb78w9utdonz/Distinct%20from%20two%20Tables.pbix?dl=0
Gracias.
He escrito una medida para contar el uso y contar el mantenimiento, pero estoy teniendo problemas para escribir uno para contar para cada fecha, si un vehículo NO se está utilizando.
Aquí están mis medidas que están funcionando.
¿Puede ayudar a crear uno que cuenta por fecha cuántos coches no se están utilizando (sin viaje o mantenimiento para esa fecha en ese coche)
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 |