Calculadora de fecha

Un usuario Pregunto ✅

mwen90

Oye,

Estoy tratando de hacer un informe para mostrarme cualquier elemento en el que la fecha ingresada sea +90 días.

He creado una columna para calcular la fecha de los datos hasta la fecha de hoy.

Imagen 1.PNG

Luego hice algunas declaraciones if (foto 2)

Imagen 2.PNG

Pero si miro la tabla, mis datos siguen siendo incorrectos, ya que tienen datos de este mes. (foto 3)Imagen 3.PNG

No estoy seguro de dónde me he equivocado

Salud,

Nolock

En respuesta a mwen90

Hola @ mwen90,

la definición de la función DAX DATEDIFF se puede encontrar aquí: https://docs.microsoft.com/en-us/dax/datediff-function-dax Dice, el primer parámetro es StartDate y el segundo es EndDate. Creo que deberías cambiar el orden en tu expresión Días.

Days = DATEDIFF(PlantEuipment_PlantEquipment[LastServiceDate];Today();DAY)

Luego cambie el tipo de datos de LastServiceDay a fecha / hora:

Capture.PNG

Y también he extendido su lógica de DaysGroup a:

DaysGroup =
IF (
    PlantEuipment_PlantEquipment[Days] < 0;
    BLANK ();
    IF (
        PlantEuipment_PlantEquipment[Days] <= 80;
        "Within service date";
        IF (
            PlantEuipment_PlantEquipment[Days] <= 90;
            "Approaching service date";
            IF ( PlantEuipment_PlantEquipment[Days] > 90; "Service Required" )
        )
    )
)

El resultado:

Capture2.PNG

Nolock

Hola @ mwen90,

ha creado dos nuevas columnas calculadas pero todavía no tiene un filtro en ellas, al menos eso parece.

Para lograr eso, aplique un filtro en el Panel de filtros en Power BI Desktop como:

Capture.PNG

mwen90

En respuesta a Nolock

@Nolock gracias. Pude aplicar esto, pero sigo viendo registros que no tienen más de 90 días

Filtering.PNG

¡Muchas gracias por la ayuda!

Nolock

En respuesta a mwen90

Hola @ mwen90,

solo para fines de depuración: agregue la columna Días a su tabla para ver qué valores hay allí.

mwen90

En respuesta a Nolock

Hola @Nolock, gracias por eso,

Puedo ver que los cálculos son incorrectos. ¿Es algo en la fórmula?Filtering.PNG

Nolock

En respuesta a mwen90

Hola @ mwen90,

¿Ha cambiado el nombre de la columna LastServiceDate a «Last Service Date» en su visual o tiene 2 columnas diferentes en su tabla? ¿Ha tomado la columna de la derecha de la tabla de la derecha? Compruébelo o, mejor aún, escriba el código DAX de la columna de cálculo una vez más desde cero. Creo que calcula DATEDIFF con una columna incorrecta.

mwen90

En respuesta a Nolock

Oye,

Creé una nueva columna e hice la fórmula con fecha IF para la columna Fecha del último servicio.

La columna que agregué se llama ‘días’.

Lo rehice y fue el mismo resultado, @Nolock

Nolock

En respuesta a mwen90

Hola @ mwen90,

por favor publique su archivo PBIX para ver por qué es así. Puedo arreglarlo entonces.

Como dijiste en https://community.powerbi.com/t5/Desktop/DATEDIFF-incorrectly-calculating/td-p/368231/page/2, realmente también puede ser tu problema.

Si tiene 2 tablas con la relación 1: N e intenta obtener una diferencia de dos valores, siempre debe tomar solo un valor en ambos lados.

mwen90

En respuesta a Nolock

Sin embargo, no hay una tabla conectada a él, así que estoy confundido. Muchas gracias por ayudar

No pude adjuntar el archivo, pero mire esta URL:

https: //drive.google.com/drive/folders/1k6hjkJ-mCKHWjX7KjTLTyyqMHfT0lajA? usp = sharinghttps: //drive.go …

O bien: https://drive.google.com/drive/folders/1k6hjkJ-mCKHWjX7KjTLTyyqMHfT0lajA

Ojalá funcione. @Nolock gracias !!

Nolock

En respuesta a mwen90

Hola @ mwen90,

el misterio esta resuelto 😉

El problema era que la columna Días estaba resumida, lo que no quieres.

Capture.PNG

Cámbielo a No resumir y comienza a funcionar:

Capture2.PNG

mwen90

En respuesta a Nolock

Lo siento, lo intenté y obtuve el mismo resultado que en tu imagen, ¿todavía hay fechas en la tabla de julio? ¡Eso es solo 15 días no dentro del período de 90 días especificado!

Esto es tan confuso, ¡muchas gracias por la ayuda! @Nolock

Nolock

En respuesta a mwen90

Hola @ mwen90,

la definición de la función DAX DATEDIFF se puede encontrar aquí: https://docs.microsoft.com/en-us/dax/datediff-function-dax Dice, el primer parámetro es StartDate y el segundo es EndDate. Creo que deberías cambiar el orden en tu expresión Días.

Days = DATEDIFF(PlantEuipment_PlantEquipment[LastServiceDate];Today();DAY)

Luego cambie el tipo de datos de LastServiceDay a fecha / hora:

Capture.PNG

Y también he extendido su lógica de DaysGroup a:

DaysGroup =
IF (
    PlantEuipment_PlantEquipment[Days] < 0;
    BLANK ();
    IF (
        PlantEuipment_PlantEquipment[Days] <= 80;
        "Within service date";
        IF (
            PlantEuipment_PlantEquipment[Days] <= 90;
            "Approaching service date";
            IF ( PlantEuipment_PlantEquipment[Days] > 90; "Service Required" )
        )
    )
)

El resultado:

Capture2.PNG

mwen90

En respuesta a Nolock

Eres un dios de los datos @Nolock, ¡gracias por la ayuda!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *