Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Se necesita ayuda para cambiar la declaración True

Estoy tratando de usar la siguiente medida para categorizar algunos datos de boletos y, por alguna razón, esta medida no está recogiendo todas las declaraciones And. ¿Alguna idea de por qué? ¿Hay algún límite que no conozco?
blueranger44_0-1650656956021.png

Sprintclosedat2 = Switch(True(),
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,6,23), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 7,7)),21.4,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,7,07), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 7,21)),21.4-2,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,7,21), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 8,4)),21.4-3,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,8,4), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 8,18)),21.4-4,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,8,18), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 9,1)),21.5-1,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,9,1), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 9,15)),21.5-2,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,9,15), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 9,29)), 21.5-3,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,9,29), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 10,13)), 21.5-4,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,10,13), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 10,27)), 21.6-1,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,10,27), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 11,10)), 21.6-2,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,11,10), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 11,24)), 21.6-3,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,12,08), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2021, 1,3)), 21.7,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,1,03), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 1,19)),22.1,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,1,19), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 2,02)),22.2,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,2,02), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 2,16)),22.3,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,2,16), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 3,2)),22.4,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,3,02), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 3,16)),22.5,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,3,16), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 3,30)),22.6,
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,3,30), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 4,13)),22.7,                                                                 
	AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2022,04,13), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] <= DATE(2022, 04,27)),22.8)

M
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola blueranger44

Considere estas 2 soluciones y luego haga clic en el botón resuelto y pulgar hacia arriba para dejar felicitaciones porque somos voluntarios de Power BI no remunerados.

Haga clic aquí para ver soluciones de ejemplo



Solución1:- Simplifique la medida DAX.

No necesita los AND porque SWITCH es un IF anidado.

Por lo tanto, no hay necesidad de probar si los valores < que una prueba anterior.
Esto será mucho más rápido para la CPU y más fácil de verificar para un humano.

....

Sprint1=
VAR mydate = SELECTEDVALUE(HX/Silvis ALL Tasks Closed'[result.closed_at].[ Fecha])
DEVOLUCIÓN
SWITCH(True(),
mydate < Fecha(2021,6,23), BLANK(),
mydate <= FECHA(2021, 7,7),21.4,
mydate <= FECHA(2021, 7,21),21.4-2,
mydate <= FECHA(2021, 8,4),21.4-3,
mydate <= FECHA(2021, 8,18),21.4-4,
mydate <= FECHA(2021, 9,1),21.5-1,
mydate <= FECHA(2021, 9,15),21.5-2,
mydate <= FECHA(2021, 9,29), 21.5-3,
mydate <= FECHA(2021, 10,13), 21.5-4,
mydate <= FECHA(2021, 10,27), 21.6-1,
mydate <= FECHA(2021, 11,10), 21.6-2,
mydate <= FECHA(2021, 11,24), 21.6-3,
mydate <= FECHA(2021, 1,3), 21.7,
mydate <= FECHA(2022, 1,19),22.1,
mydate <= FECHA(2022, 2,02),22.2,
mydate <= FECHA(2022, 2,16),22.3,
mydate <= FECHA(2022, 3,2),22.4,
mydate <= FECHA(2022, 3,16),22.5,
mydate <= FECHA(2022, 3,30),22.6,
mydate <= FECHA(2022, 4,13),22.7,
mydate <= FECHA(2022, 04,27),22.8,
EN BLANCO())


Solución2:- Usar tabla Calendario

Esta solución es mucho más sencilla.

Cree un Calander con fecha y valor de sprint.

A continuación, cree una relación de 1:m entre el Calander[Fecha] y su tabla[Fecha].
Esta solución es mejor que una fórmula DAX.

Haga clic aquí para ver soluciones de ejemplo

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hola blueranger44

Considere estas 2 soluciones y luego haga clic en el botón resuelto y pulgar hacia arriba para dejar felicitaciones porque somos voluntarios de Power BI no remunerados.

Haga clic aquí para ver soluciones de ejemplo



Solución1:- Simplifique la medida DAX.

No necesita los AND porque SWITCH es un IF anidado.

Por lo tanto, no hay necesidad de probar si los valores < que una prueba anterior.
Esto será mucho más rápido para la CPU y más fácil de verificar para un humano.

....

Sprint1=
VAR mydate = SELECTEDVALUE(HX/Silvis ALL Tasks Closed'[result.closed_at].[ Fecha])
DEVOLUCIÓN
SWITCH(True(),
mydate < Fecha(2021,6,23), BLANK(),
mydate <= FECHA(2021, 7,7),21.4,
mydate <= FECHA(2021, 7,21),21.4-2,
mydate <= FECHA(2021, 8,4),21.4-3,
mydate <= FECHA(2021, 8,18),21.4-4,
mydate <= FECHA(2021, 9,1),21.5-1,
mydate <= FECHA(2021, 9,15),21.5-2,
mydate <= FECHA(2021, 9,29), 21.5-3,
mydate <= FECHA(2021, 10,13), 21.5-4,
mydate <= FECHA(2021, 10,27), 21.6-1,
mydate <= FECHA(2021, 11,10), 21.6-2,
mydate <= FECHA(2021, 11,24), 21.6-3,
mydate <= FECHA(2021, 1,3), 21.7,
mydate <= FECHA(2022, 1,19),22.1,
mydate <= FECHA(2022, 2,02),22.2,
mydate <= FECHA(2022, 2,16),22.3,
mydate <= FECHA(2022, 3,2),22.4,
mydate <= FECHA(2022, 3,16),22.5,
mydate <= FECHA(2022, 3,30),22.6,
mydate <= FECHA(2022, 4,13),22.7,
mydate <= FECHA(2022, 04,27),22.8,
EN BLANCO())


Solución2:- Usar tabla Calendario

Esta solución es mucho más sencilla.

Cree un Calander con fecha y valor de sprint.

A continuación, cree una relación de 1:m entre el Calander[Fecha] y su tabla[Fecha].
Esta solución es mejor que una fórmula DAX.

Haga clic aquí para ver soluciones de ejemplo

Gracias @speedramps por su respuesta. Probé tu código y estoy obteniendo todos los espacios en blanco?

Sprint = 
VAR mydate = SELECTEDVALUE('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date])
RETURN
SWITCH(True(),
	mydate < Date(2021,6, 23), BLANK(),  
    mydate <= DATE(2021,7,7),21.4,
	mydate <= DATE(2021,7,21),21.4-2,
	mydate <= DATE(2021,8,4),21.4-3,
	mydate <= DATE(2021,8,18),21.4-4,
	mydate <= DATE(2021,9,1),21.5-1,
	mydate <= DATE(2021, 9,15),21.5-2,
	mydate <= DATE(2021, 9,29), 21.5-3,
	mydate <= DATE(2021, 10,13), 21.5-4,
	mydate <= DATE(2021, 10,27), 21.6-1,
	mydate <= DATE(2021, 11,10), 21.6-2,
	mydate <= DATE(2021, 11,24), 21.6-3,
	mydate <= DATE(2021, 1,3), 21.7,
	mydate <= DATE(2022, 1,19),22.1,
	mydate <= DATE(2022, 2,02),22.2,
	mydate <= DATE(2022, 2,16),22.3,
	mydate <= DATE(2022, 3,2),22.4,
	mydate <= DATE(2022, 3,16),22.5,
	mydate <= DATE(2022, 3,30),22.6,
	mydate <= DATE(2022, 4,13),22.7,                                                                 
	mydate <= DATE(2022, 04,27),22.8,
BLANK())

blueranger44_0-1650737173102.png

Hola de nuevo bluranger44

El [result.closed_at] es un campo de tipo fecha/hora.

Recomienda transformarlo en un campo de fecha.


Si utiliza la Solución 1, eso hará que la depuración de DAX sea más fácil para usted.

Si utiliza Solution2, debe usar una relación de fecha a fecha.

No use una fecha a fecha /hora para la relación.

Vea mis ejemplos, ambos métodos funcionan Haga clic aquí para ver ejemplos de soluciones

Syndicate_Admin
Administrator
Administrator

¿ @blueranger44

¿Qué quiere decir con que no está recogiendo todas las declaraciones AND? ¿Qué esperas que suceda y qué está haciendo realmente?

Mirando su código, parece sintácticamente bien, pero cuando está tratando de crear bandas como esta, los límites superior e inferior deben estar separados, no superpuestos.

Lo que quiero decir es que cuando desea verificar las tareas cerradas entre el 23 jun 21 y el 7 jul 21, entonces el siguiente rango no debería comenzar el 7 jul 21. El final de un rango se superpone al comienzo del siguiente.

Por lo tanto, su código debe tener un aspecto similar al de

AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,6,23), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] < DATE(2021, 7,7)),21.4,
AND('HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] >= Date(2021,7,07), 'HX/Silvis ALL Tasks Closed'[result.closed_at].[Date] < DATE(2021, 7,21)),21.4-2,

etc.

Saludos

Phil

Gracias por la respuesta @PhilipTreacy , creo que así es exactamente como se formatean mis datos.

Estoy intentando obtener el número de sprint específico adjunto al número de boleto correcto en función de la fecha en que se cerró o resolvió el incidente. Catergorize el boleto basado en el sprint que se cerró.

El código funciona para un chuck grande como puede ver en la captura de pantalla a continuación (22.1 - 22.8), pero por alguna razón no funciona para las líneas adicionales.

blueranger44_0-1650736983797.png

Hola de nuevo Blueranger

¿Has probado mis 2 soluciones?

Para las fechas de sprint es mejor pratice

crear un Calander con una Fecha y Sprint.

A continuación, cree una relación de 1:m entre el Calander[Fecha] y su tabla[Fecha].
Esta solución es simplex y más rápida que una fórmula DAX porque un usuario puede cambiar el calandar sin progarming DAX

Haga clic aquí para ver soluciones de ejemplo

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.