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

Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now

Reply
Syndicate_Admin
Administrator
Administrator

Comprobar si la diferencia entre dos fechas está en un trimestre determinado

Hola

Estoy intentando usar un comando FILTER en una expresión dax para mi conjunto de datos en el que cada fila tiene atributos 'Fecha de inicio' y 'Fecha de finalización'. Quiero poder verificar si alguna parte del período de tiempo entre las fechas de inicio y finalización está dentro de un trimestre específico. Digamos Trimestre 1 del año 2023. He dado una tabla de muestra a continuación de dos instancias de los datos (las columnas de fecha ya están codificadas como tipo de datos de fecha). Para esta tabla de ejemplo que di, la primera fila sería 'True', lo que significa que está en Q1 2023, mientras que la segunda sería 'False' que está en Q12023. Estoy buscando una expresión que se evalúe como verdadera o falsa para poder aplicar mi filtro en lo que estoy tratando de hacer. La última columna que tengo en mi tabla de ejemplo no es parte del dataseet pero es lo que quiero que logre la comprobación booleana

La ayuda sería apreciada y gracias de antemano.

Ali

IDENTIFICACIÓNFecha de inicioFecha final¿En el Q1 2023?
11-nov-221-feb-23Verdadero
23-dic-2310-dic-23Falso
7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Escribí 3 soluciones para ti

Comprobación de si difference.pbix

Syndicate_Admin
Administrator
Administrator

Logré encontrar la solución. Solo tenía que simplificar. Puse las siguientes comprobaciones booleanas en mi filtro y obtuve el resultado que necesito. Dentro de mi expresión de cálculo, apliqué el siguiente filtro (para Q32023). La misma lógica para cualquier trimestre. Los corchetes pueden estar desactivados ya que truncé algunas otras partes de la expresión de filtro, pero la lógica booleana es correcta. ¡Gracias por toda su ayuda!

filtro('tabla',
(('Tabla'[START_DATE].[Cuarto No]=3 && 'Tabla'[START_DATE].[Año]=2023) || ('Tabla'[END_DATE].[Cuarto No]=3 && 'Tabla'[END_DATE].[Año]=2023))
|| ('Tabla'[START_DATE]<FECHA(2023, 07, 01) && 'Tabla'[END_DATE]>FECHA(2023,09,30))))
Syndicate_Admin
Administrator
Administrator

@Ritaf1983 gracias por proporcionar este método. ¿Podría echar un vistazo a mi respuesta a continuación en el hilo donde agregué una nueva fila explicando lo que quiero capturar para un caso que no se cubrió en mi publicación original? Gracias por su ayuda.

Syndicate_Admin
Administrator
Administrator

@Ahmedx gracias por compartir. Veo que está utilizando la fecha de inicio y la fecha de finalización como medidas. Para mí son columnas en una tabla, por lo tanto, cuando uso el código que proporcionaste no puedo capturar las fechas y el código tiene un error. Además, consulte mi respuesta a continuación, donde he agregado una fila más a los datos para representar lo que estoy tratando de mejorar. Gracias por su ayuda.

Syndicate_Admin
Administrator
Administrator

Hola

Lo siento, pero debería haber dado datos más representativos. Considere la nueva fila que agregué donde ni la fecha de inicio ni la fecha de finalización caen en Q12023. Sin embargo, en el período comprendido entre el inicio y el final, ocurre Q12023. Quiero ser capaz de detectar 'VERDADERO' para eso también. Básicamente, necesito ser cierto para cualquier rango de fecha de inicio / finalización en el que se extienda Q12023, ya sea para parte del trimestre o para todo el trimestre.

IDENTIFICACIÓNFecha de inicioFecha final¿En el Q1 2023?
11-nov-221-feb-23
23-dic-2310-dic-23No
31-nov-225-jul-23
Syndicate_Admin
Administrator
Administrator

Por favor, pruebe esto

In Q1 2023? = 
VAR __Q1 = CALENDAR(DATE(2023,1,1),DATE(2023,3,31))
RETURN
[Start Date] in __Q1 || [End Date] in __Q1

Screenshot_1.png

Syndicate_Admin
Administrator
Administrator

Hola @aloosh89
Si necesita este indicador como indicador "estático", puede utilizar la siguiente medida dax:

Bandera =
Dónde
startdate_check= si(CUARTO(..max('hecho'[fecha de inicio]))=1 && AÑO(..max('hecho'[Fecha de inicio]))=2023,1,0)
Dónde
enddatdate_check= si(CUARTO(..max('hecho'[fecha de finalización]))=1 && AÑO(..max('hecho'[Fecha de finalización]))=2023,1,0)
devolución
si (startdate_check=1 || enddatdate_check=1,VERDADERO(),FALSO())
Ritaf1983_0-1694249207285.png

Si necesita esto de manera más dinámica, entonces:
Puede crear una tabla desconectada de "Quarters Dictionary" como:

Ritaf1983_1-1694249316184.pngRitaf1983_2-1694249360366.png

y medida de uso:

Flag_Dynamic =
Dónde
startdate_check= si(CUARTO(..max('hecho' [fecha de inicio])) =CUARTO(..max('Quarters dictionary'[fecha de inicio])) && AÑO(..max('hecho'[Fecha de inicio])) =año(..max('Diccionario de cuartos'[fecha de inicio])),1,0)
Dónde
enddatdate_check= si(CUARTO(..max('hecho' [fecha de finalización])) =CUARTO(..max('Diccionario de trimestres' [fecha de finalización])) && AÑO(..max('hecho' [Fecha de finalización])) =año(..max('Diccionario de cuartos'[fecha de inicio])),1,0)
devolución
si (startdate_check=1 || enddatdate_check=1,VERDADERO(),FALSO())

Ritaf1983_3-1694249550302.png

Vínculo a un archivo de ejemplo

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Helpful resources

Announcements
OCT PBI Update Carousel

Power BI Monthly Update - October 2024

Check out the October 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

October NL Carousel

Fabric Community Update - October 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors