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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch 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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors