Forum Discussion
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.
No @ka047 ,
Si crees que hay algo mal con tus partes amarillas en tu fomula, puedes modificarlo así:
NOT ISBLANK ( [DeliveryDate] ) && [Shipdays] == 0Toda 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:
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.
11 Replies
- ka047Helper 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
)
)
- lbendlinSuper 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
- ka047Helper I
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ónsumx(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))
- lbendlinSuper User
Esta es su fórmula:
Puede reescribir como:
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.
- ka047Helper I
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;
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-yingjlCommunity Support
No @ka047 ,
Si crees que hay algo mal con tus partes amarillas en tu fomula, puedes modificarlo así:
NOT ISBLANK ( [DeliveryDate] ) && [Shipdays] == 0Toda 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:
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.
- amitchandakSuper 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] ❤️
- ka047Helper I
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ónSUMX (ResumenSI (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))
- lbendlinSuper 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.
- ka047Helper I
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!
- AllisonKennedyCommunity Champion
@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í. 🙂