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
Syndicate_Admin
Administrator
Administrator

solución para filtrar datos por cualquier cosa que sea de 2 años o más a partir de la fecha actual

Estoy tratando de reproducir un filtro del conjunto de datos que sé cómo lograr en mysql usando la siguiente instrucción where clause

(r.review_completion_date <- DATE_SUB(curdate() , INTERVAL 730 DAY) o r.production_launch_date <- DATE_SUB(curdate() , INTERVAL 730 DAY)); -- es decir, todos los hits donde la fecha es de 2 años o más a partir de la fecha actual

Puede hacer esto con una columna calculada, por ejemplo, usando DAX donde si la cláusula where es true para una fila determinada, devuelvo TRUE permitiéndome usar filtros de informe de problemas estándar en busca de visitas TRUE de esa columna calculada.

in-desired-date-range - if (r.review_completion_date <- DATE_SUB(curdate() , INTERVAL 730 DAY) o r.production_launch_date <- DATE_SUB(curdate() , INTERVAL 730 DAY)) - TRUE else FALSE

También sería bueno saber cómo habilito este filtrado en el nivel de conjunto de datos en la instrucción m-code, ya sea compilado con algún asistente de botón de la cinta de opciones que estoy viendo para ayudar a configurar esto o introducido manualmente m-code mediante el editor avanzado.

1 ACCEPTED SOLUTION

@myusrn

tal vez usted puede probar esto

Measure = EDATE(today(),-24)

Column = if(ISBLANK(Sheet1[review_completion_date]),if(Sheet1[production_launch_date]<[Measure]&& Sheet1[review_completion_date]<=TODAY(),TRUE(),FALSE()),if(Sheet1[review_completion_date]<[Measure]&& Sheet1[review_completion_date]<=today() ,TRUE(),FALSE()))

1.PNG

View solution in original post

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

@myusrn

¿Es esto lo que quieres?

Column = if(ISBLANK(Sheet1[review_completion_date]),if(DATEDIFF(Sheet1[production_launch_date],today(),day)>730 && Sheet1[review_completion_date]<=TODAY(),TRUE(),FALSE()),if(DATEDIFF(Sheet1[review_completion_date],today(),DAY)>730 && Sheet1[review_completion_date]<=today() ,TRUE(),FALSE()))

1.PNG

No @ryan_mayu,

Gracias por la respuesta y la entrada sobre la solución. Sí, parece que también funcionaría.


Por favor, vea la respuesta que publiqué en iXpert_info siguiente en lo que se me ocurrió en términos de una medida que calcula los dos años a partir de la fecha de hoy y luego el cálculo de columna que lo utiliza para producir un resultado verdadero / falso que puedo filtrar.

Parece llegar al mismo resultado que lo que ha propuesto, pero con el uso de diferentes funciones.


¿Alguna información sobre el valor de usar la función today() sobre utcnow() y el uso de datediff() frente a una fecha <- una fecha calculada para representar dos años antes de la fecha actual?

@myusrn

tal vez usted puede probar esto

Measure = EDATE(today(),-24)

Column = if(ISBLANK(Sheet1[review_completion_date]),if(Sheet1[production_launch_date]<[Measure]&& Sheet1[review_completion_date]<=TODAY(),TRUE(),FALSE()),if(Sheet1[review_completion_date]<[Measure]&& Sheet1[review_completion_date]<=today() ,TRUE(),FALSE()))

1.PNG

Gracias, sí EDATE() y UTCTODAY() trabajan en liue de las funciones DATE() y UTCNOW() que estaba usando y tienen el beneficio de devolver sólo la fecha que me importa que es 2 años en el pasado frente a las funciones que estaba usando esa hora de fecha de retorno y no necesito o quiero la porción de tiempo.

Pregunta relacionada ¿sabe cómo convertir una medida que contiene un valor datetime a un valor de fecha?

Pude lograr esto usando el modelo | <tabla> | <medida> | propiedades | formato | formato de fecha y hora | m/d/aaaa opción pero tengo curiosidad si hay una función que se puede utilizar para esto en su lugar que no pude encontrar en las funciones de fecha y hora (DAX) - DAX | Documentos de Microsoft.

En las siguientes medidas puedo usar EDATE() y UTCTODAY() para obtener un resultado de tipo date[only] two_years_ago medida, pero utilizándolo en un objeto visual de tarjeta, todavía incluye tiempo.

Medida / two_years_ago - EDATE( UTCTODAY(), -24 )

Del mismo modo con el two_weeks_ago donde tengo que utilizar DATE() y UTCNOW() que devuelve un tipo datetime.
Medir / two_weeks_ago - DATE( YEAR(UTCNOW()), MONTH(UTCNOW()), DAY(UTCNOW())-14 )

@myusrn

puede hacer clic en la lista desplegable de Formato y seleccionar el tipo de formato que desee.

1.PNG

Syndicate_Admin
Administrator
Administrator

Hola @myusrn

¿Puede explicarlo con algunos datos de ejemplo?

Gracias
Jay Patel
iXpert Analytics

Pregunta relacionada ¿sabe cómo convertir una medida que contiene un valor datetime a un valor de fecha?

Pude lograr esto usando el modelo | <tabla> | <medida> | propiedades | formato | formato de fecha y hora | m/d/aaaa opción pero tengo curiosidad si hay una función que se puede utilizar para esto en su lugar que no pude encontrar en las funciones de fecha y hora (DAX) - DAX | Documentos de Microsoft.

En las siguientes medidas puedo usar EDATE() y UTCTODAY() para obtener un resultado de tipo date[only] two_years_ago medida, pero utilizándolo en un objeto visual de tarjeta, todavía incluye tiempo.

Medida / two_years_ago - EDATE( UTCTODAY(), -24 )

Del mismo modo con el two_weeks_ago donde tengo que utilizar DATE() y UTCNOW() que devuelve un tipo datetime.
Medir / two_weeks_ago - DATE( YEAR(UTCNOW()), MONTH(UTCNOW()), DAY(UTCNOW())-14 )

He llegado a una solución que funciona, y estaría interesado si ves algo que sugiera que esta no es la mejor manera de lograr el resultado deseado.

primero creé una medida

two_years_ago - DATE( YEAR(UTCNOW())-2, MONTH(UTCNOW()), DAY(UTCNOW()) )

entonces creé una columna

is_two_years_old DE LA IS_TWO_YEARS_OLD IF (
('mytable'[review_completion_date] &gt;&lt; BLANK() && 'mytable'[review_completion_date] <- [two_years_ago]) ||
(ISBLANK('mytable'[review_completion_date]) && 'mytable'[production_launch_date] &lt;- [two_years_ago]),
VERDADERO, FALSO
)

Ahora puedo crear una página de informe simple o una configuración de filtro de ámbito visual en esa columna calculada seleccionando filtro TRUE para incluir todos los registros que coincidan con esa prueba de 2 años o más.

Hola @iXpert_info gracias por su seguimiento en este, disculpas por no incluir datos de muestra por adelantado.

El archivo descargable desde aquí contiene el siguiente conjunto de datos de ejemplo donde creo que lo que estoy buscando hacer es crear una columna calculada verdadera/falsa que sea verdadera si review_completion_date es > 2 años más antigua que la fecha actual O production_launch_date es > 2 años más antiguo que la fecha actual en caso de que review_completion_date esté en blanco.

myusrn_0-1611435587950.png

No puedo averiguar cómo hacer una instrucción OR usando la página de informe dragNdrop filter settings así como cómo hacer que se basen en una fecha anterior calcultada basada en la fecha actual, ver esta publicación. Eso es lo que me hace pensar si creo una columna true/false calculada usando lo que entiendo que es sintaxis DAX y luego podría usar la configuración de filtro de arrastrar página de informe simple, incluyendo solo la columna calculada .
Espero que ayude a aclarar el objetivo y proporcione datos para crear/probar la solución propuesta. Gracias de antemano por su ayuda.

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.