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
datadonuts
Helper II
Helper II

Optimización del modelo de datos para el informe What-if

Creé un informe para calcular la concentración de alcohol en sangre (BAC). Todo el informe basado en una pequeña tabla de Excel, el resto son tablas what-if. El resultado es un montón de tablas, que no están relacionadas en absoluto y un informe bastante lento.

Screenshot 2020-11-27 215525.jpg

BAC_datamodel.jpg

La idea original era seleccionar 1. la bebida de un talbe y luego 2. la cantidad de bebidas de otra mesa, entonces de alguna manera construir una relación. Averiguar el cálculo de BAC con DAX. Pero no era factible ... o digamos, no pude encontrar una mejor solución.

Slide1.JPG

¿Qué enfoque podría adoptarse para optimizar el modelo de datos y mejorar el rendimiento del informe?

Las sugerencias y los críticos son muy apreciados.

https://community.powerbi.com/t5/Data-Stories-Gallery/Calculate-your-Blood-Alcohol-Level-BAC/td-p/15...

1 ACCEPTED SOLUTION
Icey
Community Support
Community Support

Hola @datadonuts ,

Una sugerencia: en algunas de las expresiones de medida, utilice parámetros en lugar de utilizar directamente medidas, como a continuación, para reducir el número de veces que se calculan.

Promille Watson Formula =
VAR Watson =
    SWITCH (
        TRUE (),
        SELECTEDVALUE ( Gender[Sex] ) = "F",
            -2.097
                + ( 0.1069 * SELECTEDVALUE ( Bodyheight[Groesse] ) )
                + ( 0.2466 * SELECTEDVALUE ( 'Weight'[Weight] ) ),
        SELECTEDVALUE ( Gender[Sex] ) = "M",
            2.447
                - ( 0.09516 * SELECTEDVALUE ( Age[Age] ) )
                + ( 0.1074 * SELECTEDVALUE ( Bodyheight[Groesse] ) )
                + ( 0.3362 * SELECTEDVALUE ( 'Weight'[Weight] ) ),
        BLANK ()
    )
VAR AlcoholPromille = ( [Total Alcohol Intake] / Watson ) * 0.9 //resorbtion deficit
RETURN
    AlcoholPromille

Sustituya la medida anterior por esta:

Promille Watson Formula =
VAR SelectedSex =
    SELECTEDVALUE ( Gender[Sex] )
VAR SelectedGroesse =
    SELECTEDVALUE ( Bodyheight[Groesse] )
VAR SelectedWeight =
    SELECTEDVALUE ( 'Weight'[Weight] )
VAR SelectedAge =
    SELECTEDVALUE ( Age[Age] )
VAR Watson =
    SWITCH (
        SelectedSex,
        "F",
            -2.097 + ( 0.1069 * SelectedGroesse ) + ( 0.2466 * SelectedWeight ),
        "M",
            2.447 - ( 0.09516 * SelectedAge ) + ( 0.1074 * SelectedGroesse ) + ( 0.3362 * SelectedWeight )
    )
VAR TotalAlcoholIntake = [Total Alcohol Intake]
VAR AlcoholPromille = ( TotalAlcoholIntake / Watson ) * 0.9 //resorbtion deficit
RETURN
    AlcoholPromille

Saludos

Icey

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.

View solution in original post

1 REPLY 1
Icey
Community Support
Community Support

Hola @datadonuts ,

Una sugerencia: en algunas de las expresiones de medida, utilice parámetros en lugar de utilizar directamente medidas, como a continuación, para reducir el número de veces que se calculan.

Promille Watson Formula =
VAR Watson =
    SWITCH (
        TRUE (),
        SELECTEDVALUE ( Gender[Sex] ) = "F",
            -2.097
                + ( 0.1069 * SELECTEDVALUE ( Bodyheight[Groesse] ) )
                + ( 0.2466 * SELECTEDVALUE ( 'Weight'[Weight] ) ),
        SELECTEDVALUE ( Gender[Sex] ) = "M",
            2.447
                - ( 0.09516 * SELECTEDVALUE ( Age[Age] ) )
                + ( 0.1074 * SELECTEDVALUE ( Bodyheight[Groesse] ) )
                + ( 0.3362 * SELECTEDVALUE ( 'Weight'[Weight] ) ),
        BLANK ()
    )
VAR AlcoholPromille = ( [Total Alcohol Intake] / Watson ) * 0.9 //resorbtion deficit
RETURN
    AlcoholPromille

Sustituya la medida anterior por esta:

Promille Watson Formula =
VAR SelectedSex =
    SELECTEDVALUE ( Gender[Sex] )
VAR SelectedGroesse =
    SELECTEDVALUE ( Bodyheight[Groesse] )
VAR SelectedWeight =
    SELECTEDVALUE ( 'Weight'[Weight] )
VAR SelectedAge =
    SELECTEDVALUE ( Age[Age] )
VAR Watson =
    SWITCH (
        SelectedSex,
        "F",
            -2.097 + ( 0.1069 * SelectedGroesse ) + ( 0.2466 * SelectedWeight ),
        "M",
            2.447 - ( 0.09516 * SelectedAge ) + ( 0.1074 * SelectedGroesse ) + ( 0.3362 * SelectedWeight )
    )
VAR TotalAlcoholIntake = [Total Alcohol Intake]
VAR AlcoholPromille = ( TotalAlcoholIntake / Watson ) * 0.9 //resorbtion deficit
RETURN
    AlcoholPromille

Saludos

Icey

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.

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.