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

Obtener valores de "inicio" y "fin" de la segmentación de fechas

Hola

Tengo una pregunta.

Objetivo final

Para advertir a los usuarios si seleccionan fechas más allá del intervalo de fechas disponible en mi tabla. La idea es capturar los valores de "inicio" y "fin" de la segmentación de fechas para determinar si los usuarios seleccionan fechas más allá del ámbito de intervalo de fechas disponible.

mesa

Tabla básica del calendario del 1 al 21 de enero a TODAY()

Dax

Date Harvest Min = 
    CALCULATE(
        MIN( '. Master Cal'[Date] ),
        ALLSELECTED( '. Master Cal'[Date] )
    )

Date Harvest Max = 
    CALCULATE(
        MAX( '. Master Cal'[Date] ),
        ALLSELECTED( '. Master Cal'[Date] )
    )

Caso de uso

En el selector de fechas, seleccione 1-Nov-10 como valor inicial y 20-May-31 como valor final.

Screenshot 2021-05-11 231122.png

Esos DAX regresan 01/01/21 y 11/05/21, que son las fechas de inicio y finalización de mi tabla (las fechas mínima y máxima).

Quiero tener DAXs que regresen del 1 al 10 de noviembre y del 20 de mayo al 31.

¿Alguien sabe la respuesta para el DAX correcto? O cualquier respuesta, que pueda lograr el objetivo final, sea cual sea el enfoque.

¡Cualquier ayuda será muy apreciada! Gracias.

1 ACCEPTED SOLUTION

No @gggar

Si solo elige datos de su rango en su segmentación(entre), PBI no mostrará ningún mensaje de error ni ninguna respuesta a usted. Solo mostrará la fecha máxima predeterminada y la fecha mínima predeterminada en el modelo de datos.

Pero puede crear una medida para obtener alguna advertencia de mensaje.

En primer lugar, necesitamos crear una tabla de calendario con un rango lo suficientemente grande. (Porque la fecha que elija debe estar en el modelo de datos.) A continuación, creamos una segmentación por columna de fecha en esta tabla.

Slicer = CALENDAR(DATE(2000,1,1),DATE(2100,12,31))

Relacionar tabla segmentación de datos y . Master Cal tabla por fecha columna.

A continuación, cree una medida como se indica a continuación.

Warning = 
VAR _End =
    MAX ( Slicer[Date] )
VAR _Start =
    MIN ( Slicer[Date] )
VAR _Range =
    VALUES ( '. Master Cal'[Date] )
VAR _Result =
    SWITCH (
        TRUE (),
        _Start
            IN _Range
            && NOT ( _End IN _Range ), "Warning : End out of Range",
        NOT ( _Start IN _Range )
            && _End IN _Range, "Warning : Start out of Range",
        _Start
            IN _Range
            && _End IN _Range, "All in Range",
        "Warning : All out of Range"
    )
RETURN
    _Result

El resultado es el siguiente.

Si selecciona 1-Nov-10 como valor inicial y 20-May-31 como valor final.

Te mostrará una advertencia. Puede cambiar el texto en medida para mostrar la advertencia que desee.

1.png

Saludos

Rico Zhou

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola tengo un problema cuando quiero cálculos de filtro según fecha de finalización de la segmentación de datos. Utilicé

filtro('Fecha', 'Fecha'[Fecha] =maxx(allselected('Fecha') , 'Fecha'[Fecha])) pero no me ayudó.
Syndicate_Admin
Administrator
Administrator

No @RicoZhou,

Gracias por la respuesta.

Sí, soy consciente de eso. gracias.

Supongo que no hay manera de que PBI pueda mostrar un mensaje de error o alguna respuesta si se eligen fechas fuera del rango.

No @gggar

Si solo elige datos de su rango en su segmentación(entre), PBI no mostrará ningún mensaje de error ni ninguna respuesta a usted. Solo mostrará la fecha máxima predeterminada y la fecha mínima predeterminada en el modelo de datos.

Pero puede crear una medida para obtener alguna advertencia de mensaje.

En primer lugar, necesitamos crear una tabla de calendario con un rango lo suficientemente grande. (Porque la fecha que elija debe estar en el modelo de datos.) A continuación, creamos una segmentación por columna de fecha en esta tabla.

Slicer = CALENDAR(DATE(2000,1,1),DATE(2100,12,31))

Relacionar tabla segmentación de datos y . Master Cal tabla por fecha columna.

A continuación, cree una medida como se indica a continuación.

Warning = 
VAR _End =
    MAX ( Slicer[Date] )
VAR _Start =
    MIN ( Slicer[Date] )
VAR _Range =
    VALUES ( '. Master Cal'[Date] )
VAR _Result =
    SWITCH (
        TRUE (),
        _Start
            IN _Range
            && NOT ( _End IN _Range ), "Warning : End out of Range",
        NOT ( _Start IN _Range )
            && _End IN _Range, "Warning : Start out of Range",
        _Start
            IN _Range
            && _End IN _Range, "All in Range",
        "Warning : All out of Range"
    )
RETURN
    _Result

El resultado es el siguiente.

Si selecciona 1-Nov-10 como valor inicial y 20-May-31 como valor final.

Te mostrará una advertencia. Puede cambiar el texto en medida para mostrar la advertencia que desee.

1.png

Saludos

Rico Zhou

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

No @gggar

Su tabla de calendario es del 1 al 21 de enero a TODAY().

. Master Cal = CALENDAR(DATE(2021,01,01),TODAY())

Así que en su modelo de datos, solo hay valores entre 2021/01/01 hasta la actualidad.

Creo que deberías usar . Master Cal[Date] para crear una segmentación de datos (elija Between) como selector de fecha.

1.png

Verá que la segmentación de datos mostrará 2020/01/01 a 2021/05/13(hoy) de forma predeterminada.

En el modelo de datos, 2021/01/01 es la fecha mínima y hoy es la fecha máxima.

Por lo tanto, cambia su fecha de inicio a 2010/11/01 y la fecha de finalización a 2031/05/20, solo obtendrá la fecha mínima y máxima en su modelo de datos (2020/01/01 y 2021/05/13)

No se pudo obtener 2010/11/01 y 2031/05/20 porque no están en el modelo de datos.

2.png

Si desea obtener 2010/11/01 y 2031/05/20 por función mínima y máxima en Dax, debe crear una tabla de calendario que los contenga.

. Master Cal = CALENDAR(DATE(2010,11,01),DATE(2031,05,20))

Y puede recordarle a su usuario, si [Fecha cosecha mínima] y [Fecha de cosecha máxima] solo mostrarán la fecha máxima mínima o predeterminada predeterminada que son diferentes de la fecha de inicio o la fecha de finalización que seleccionan en el selector De fecha, significa que han elegido fechas fuera de su rango de tabla de calendario.

Saludos

Rico Zhou

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

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.