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
ka047
Helper I
Helper I

Ayuda de DAX Measure - First Post

Estoy tratando de poner un IF( AND( declaraciones añadidas en mi medida dax (que voy a publicar a continuación). El problema con el que me estoy ejecutando es dónde poner esas declaraciones y cómo basar en el campo que no es una medida. Lo que el campo es que estoy tratando de introducir es tal;

IF([DropShippedInd-0, [Shipdays] > 3 entonces es a tiempo. Por lo tanto, si la fecha de entrega y la fecha de envío confirmada son > 3 , 1,0)

El siguiente es

IF([DropShippedInd-1, [Shipdays] > 1 entonces es a tiempo. Por lo tanto, si la fecha de entrega y la fecha de envío confirmada son > 1 , 1,0)

Así que lo anterior necesita ir a algún lugar en la medida DAX que he creado a continuación; con el [DropShippedInd] es un campo, no una medida calculada. Así que puede que tenga que probar como SUMX o algo antes para conseguirlo en.

OTD ?
var resumen de var ?
resumir (Fact_SalesCogs,
Fact_SalesCogs[SalesOrder],
Fact_SalesCogs[ShippingDateConfirmed],
Fact_SalesCogs[DeliveryDate],
"Shipdays",
calcular(
AVERAGEX(
Fact_SalesCogs, datediff(Fact_SalesCogs[ShippingDateConfirmed], Fact_SalesCogs[DeliveryDate], day)
))

)

devolución
sumx(resumen,
si(
y(
not(isblank([ShippingDateConfirmed])),
y(
not(isblank([DeliveryDate]))

,
[días de envío] > 0
)
),
1,0
)

)
1 ACCEPTED SOLUTION
v-yingjl
Community Support
Community Support

No @ka047 ,

Si crees que hay algo mal con tus partes amarillas en tu fomula, puedes modificarlo así:

NOT ISBLANK ( [DeliveryDate] ) && [Shipdays] == 0

Toda la fórmula:

Measure 3 =
VAR summary =
    SUMMARIZE (
        Fact_SalesCogs,
        Fact_SalesCogs[SalesOrder],
        Fact_SalesCogs[ShippingDateConfirmed],
        Fact_SalesCogs[DeliveryDate],
        Fact_SalesCogs[DropShippedInd],
        "Shipdays",
            CALCULATE (
                AVERAGEX (
                    Fact_SalesCogs,
                    DATEDIFF (
                        Fact_SalesCogs[ShippingDateConfirmed],
                        Fact_SalesCogs[DeliveryDate],
                        DAY
                    )
                )
            )
    )
RETURN
    SUMX (
        summary,
        IF (
            NOT ISBLANK ( [ShippingDateConfirmed] )
                && (
                    NOT ISBLANK ( [DeliveryDate] )
                        && [Shipdays]
                            == 0
                                || (
                                    NOT ISBLANK ( [DeliveryDate] )
                                        && ( Fact_SalesCogs[DropShippedInd] = 1
                                        && [Shipdays] <= 1
                                        && [Shipdays] >= 0
                                        || Fact_SalesCogs[DropShippedInd] = 0
                                        && [Shipdays] <= 3
                                        && [Shipdays] >= 0 )
                                )
                ),
            1,
            0
        )
    )

Si [Shipdays] es una columna de tipo de número, [Shipdays] a 0 y [Shipdays] a 0 son diferentes:

t.pngtt.png

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

11 REPLIES 11
lbendlin
Super User
Super User

No completamente, usted tiene contradicciones en su descripción (y lindos corazones 🙂).

Anote su lógica de negocios, pida a otra persona que la confirme y, a continuación, aplique la reducción booleana.

Ese corazón debe ser y 3, me disculpo por la confusión.

@mahoneypat @AlB @PhilipTreacy @AllisonKennedy etiquetarlos, ya que veo que cada uno de ustedes eran los mejores autores de soluciones el mes pasado. Si pudieran ayudarme, se lo agradecería mucho. Espero aclarar cualquier pregunta que usted tendría también. ¡Gracias!

@ka047 Parece que tienes una solución cercana de @lbendlin . ¿Con cuántas mesas trabajas?

Si necesita una solución exacta más eficiente, proporcione una tabla de datos de ejemplo o al menos nombres de tablas y columnas y cualquier relación.

Entonces, si usted puede describir la lógica sucintamente en inglés (no con DAX), entonces podemos sugerir nuestros mejores enfoques a partir de ahí. 🙂


Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

amitchandak
Super User
Super User

@ka047 , Puede crear dos nuevas columnas como

Shipdays á datediff([Delivery Date],[Confirmed Ship Date],day)

En el tiempo: if([Días de envío] >-3 && [DropShippedInd] 0 ,1 , 0)

Pero creo que debería ser [Shipdays] ❤️

Entonces, ¿cómo escribirías la medida en base a lo que tengo? No creo que pueda crear los columbs porque podemos tener varios campos que están en tablas diferentes pero que comparten el mismo nombre. Como la fecha de entrega

Medida 3 - Resumen del VAR ?
RESUMIR (
Fact_SalesCogs,
Fact_SalesCogs[SalesOrder],
Fact_SalesCogs[ShippingDateConfirmed],
Fact_SalesCogs[DeliveryDate],
Fact_SalesCogs[DropShippedInd],
"Shipdays",
CALCULAR (
AVERAGEX (
Fact_SalesCogs,
DATEDIFF (
Fact_SalesCogs[ShippingDateConfirmed],
Fact_SalesCogs[DeliveryDate],
Día
)
)
)
)
devolución
SUMX (
Resumen
SI (
NO ISBLANK ( [ShippingDateConfirmed] )
&& (
NO ISBLANK ( [DeliveryDate] )
&& [Días de envío] a 0
|| (
NO ISBLANK ( [DeliveryDate] )
&& ( Fact_SalesCogs[DropShippedInd] n.o 1
&& [Días de envío] <-1
&& [Días de envío] > 0
|| Fact_SalesCogs[DropShippedInd] a 0
&& [Días de envío] <-3
&& [Días de envío] > 0 )
)
),
1,
0
)
)
lbendlin
Super User
Super User

Esta es su fórmula:

lbendlin_0-1609380608780.png

Puede reescribir como:

lbendlin_1-1609381263595.png

Conjunto completo:

medida 3 :
Fue Resumen =
Resumir (
Fact_SalesCogs,
Fact_SalesCogs[SalesOrder],
Fact_SalesCogs[ShippingDateConfirmed],
Fact_SalesCogs[DeliveryDate],
Fact_SalesCogs[DropShippedInd],
"Días de barco",
Calcular (
AVERAGEX (
Fact_SalesCogs,
Datediff (
Fact_SalesCogs[ShippingDateConfirmed],
Fact_SalesCogs[DeliveryDate],
Día
)
)
)
)
devolución
SUMX (
Resumen,
Si (
No ISBLANK ( [ShippingDateConfirmed] )
&& (
No ISBLANK ( [Fecha de entrega] )
&& [Días de envío] 0
|| (
No ISBLANK ( [Fecha de entrega] )
&& ( Fact_SalesCogs[DropShippedInd] 1
&& [Días de envío] < 1
&& [Días de envío] > 0
|| Fact_SalesCogs[DropShippedInd] 0
&& [Días de envío] < 3
&& [Días de envío] > 0 )
)
),
1,
0
)
)

Como puede ver, hay un par de redundancias que podría eliminar con las instrucciones IN.

@amitchandak @lbendlin

Me pregunto si necesitamos los Días de Los Barcos 0, en el primer punto. Porque lo que yo esperaría es que al no hacer que DropShipppedInd sea 0, y dar un trilla de ❤️ o <1, que nuestras entregas en tiempo aumentaría en comparación con antes, cuando tenían que ser 0.

Creo que el problema está en esta parte;

ka047_0-1609425153194.png

Lo que realmente quiero devolver es si la fecha de entrega o la fecha de envío confirmada no son BLANK, luego datediff(DeliveryDate, ShippingDateConfirmed,DAY) y el dropShippedInd está siendo ❤️ o <1.

Espero que tenga sentido.

v-yingjl
Community Support
Community Support

No @ka047 ,

Si crees que hay algo mal con tus partes amarillas en tu fomula, puedes modificarlo así:

NOT ISBLANK ( [DeliveryDate] ) && [Shipdays] == 0

Toda la fórmula:

Measure 3 =
VAR summary =
    SUMMARIZE (
        Fact_SalesCogs,
        Fact_SalesCogs[SalesOrder],
        Fact_SalesCogs[ShippingDateConfirmed],
        Fact_SalesCogs[DeliveryDate],
        Fact_SalesCogs[DropShippedInd],
        "Shipdays",
            CALCULATE (
                AVERAGEX (
                    Fact_SalesCogs,
                    DATEDIFF (
                        Fact_SalesCogs[ShippingDateConfirmed],
                        Fact_SalesCogs[DeliveryDate],
                        DAY
                    )
                )
            )
    )
RETURN
    SUMX (
        summary,
        IF (
            NOT ISBLANK ( [ShippingDateConfirmed] )
                && (
                    NOT ISBLANK ( [DeliveryDate] )
                        && [Shipdays]
                            == 0
                                || (
                                    NOT ISBLANK ( [DeliveryDate] )
                                        && ( Fact_SalesCogs[DropShippedInd] = 1
                                        && [Shipdays] <= 1
                                        && [Shipdays] >= 0
                                        || Fact_SalesCogs[DropShippedInd] = 0
                                        && [Shipdays] <= 3
                                        && [Shipdays] >= 0 )
                                )
                ),
            1,
            0
        )
    )

Si [Shipdays] es una columna de tipo de número, [Shipdays] a 0 y [Shipdays] a 0 son diferentes:

t.pngtt.png

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

lbendlin
Super User
Super User

en lugar de AND() puede usar &&.

if(a>3 && b-0 && c<10 && d-5,this,that)

para OR() se puede utilizar el número de

Para la siguiente medida, ¿qué cambiaría con respecto a lo que se refirió?

Medición 3 - var resumen ?
resumir (Fact_SalesCogs,
Fact_SalesCogs[SalesOrder],
Fact_SalesCogs[ShippingDateConfirmed],
Fact_SalesCogs[DeliveryDate],
Fact_SalesCogs[DropShippedInd],
"Shipdays",
calcular(
AVERAGEX(
Fact_SalesCogs, datediff( Fact_SalesCogs[ShippingDateConfirmed],Fact_SalesCogs[DeliveryDate], day)
))

)

devolución
sumx(resumen,
si(
y(
not(isblank([ShippingDateConfirmed])),

O(
y(
not(isblank([DeliveryDate]))
,
[Días de envío] 0)
,
y(
not(ISBLANK([DeliveryDate]))
,
o( Fact_SalesCogs[DropShippedInd] á 1 && AND(
[Días de envío] <-1,[Días de envío] > 0),
Fact_SalesCogs[DropShippedInd] á 0 && AND(
[Días de envío] <-3,[Días de envío] > .0)
)

)
)
),
1,0
)

)
ka047
Helper I
Helper I

Ahora he alterado la medida DAX para ser el siguiente, pero no está seguro de si está funcionando o no. ¿Alguna ayuda o confirmación?

OTD

var resumen de var ?

resumir (Fact_SalesCogs,

Fact_SalesCogs[SalesOrder],

Fact_SalesCogs[ShippingDateConfirmed],

Fact_SalesCogs[DeliveryDate],

Fact_SalesCogs[DropShippedInd],

"Shipdays",

calcular(

AVERAGEX(

Fact_SalesCogs, datediff( Fact_SalesCogs[ShippingDateConfirmed],Fact_SalesCogs[DeliveryDate], day)

))

)

devolución

sumx(resumen,

si(

y(

not(isblank([ShippingDateConfirmed])),

O(

y(

not(isblank([DeliveryDate]))

,

[Días de envío] 0)

,

y(

not(ISBLANK([DeliveryDate]))

,

o( Fact_SalesCogs[DropShippedInd] á 1 && AND(

[Días de envío] <-1,[Días de envío] > 0),

Fact_SalesCogs[DropShippedInd] á 0 && AND(

[Días de envío] <-3,[Días de envío] > .0)

)

)

)

),

1,0

)

)

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.