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
Anonymous
Not applicable

Medida DAX eficiente - resultado por fila

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.

fleet base tables.jpg

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" )

fleet result.jpg

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.

fleet usage example.jpg

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"
)

10 REPLIES 10
Ashish_Mathur
Super User
Super User

Hola

Comparta esas 3 tablas en un formato que se puede pegar en un libro de MS Excel.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

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

CocheDePara
A1/01/202010/01/2020
B5/01/202012/01/2020
C7/01/202014/01/2020

Mtc

CocheMaint Date
A2/01/2020
A3/01/2020
A5/01/2020
B6/01/2020
C8/01/2020
C

10/01/2020

Viajes

CocheFechaDistancia
A1/01/202010.1
A8/01/202015
B7/01/202033.5
B8/01/202036.2
B9/01/202012.5
C7/01/202019.8
C9/01/202021.2
C11/01/202012.3
C13/01/202013.5

Hola

Puede descargar mi archivo PBI desde aquí.

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

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.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

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.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
v-alq-msft
Community Support
Community Support

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:
b1.png

b2.png

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.

amitchandak
Super User
Super User

@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

Anonymous
Not applicable

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)

countmtc ?
CALCULATE(COUNTX(
FILTER(Mtc, Mtc[Maint Date] á RELATED('Date'[Date])),Mtc[Maint Date]
))
countused ?
CALCULATE(COUNTX(
FILTER(trips, trips[Date] á RELATED('Date'[Date])),trips[Date]
)
)
Aquí está mi modelo
model.jpg

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.

Top Kudoed Authors