Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago

Selectedvalue no funciona

Hola juntos, ¿alguien puede decirme por qué esta medida no está funcionando? Estoy seleccionando SELECTEDVALUE en una segmentación de datos en mi informe.

gracias, lennart

InDateTimeRange =

Dónde _rangeStart= SELECTEDVALUE(Datos[Marca de tiempoDe])

Dónde _rangeEnd= SELECTEDVALUE(Datos[Marca de tiempo])

devolución

SI(

SELECTEDVALUE(Datos[Marca de tiempoDe]) >= _rangeStart

&& SELECTEDVALUE(Datos[Marca de tiempo]) <= _rangeEnd

&& SELECTEDVALUE(Datos[Marca de tiempo]) <>ESPACIO EN BLANCO()

, 1, 0)

3 Replies

  • Hola

    ¿Dónde está utilizando esta medida? Con solo mirarlo, SELECTEDVALUE(Data[TimestampFrom]) será el mismo las dos veces que lo haga referencia, por lo que las dos primeras condiciones siempre deben ser verdaderas, ya que serán iguales cada vez. ¿Es eso lo que estás encontrando?

    Es posible que necesite una nueva tabla que contenga fechas para usar para las segmentaciones de datos, y puede usarlas para comparar.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola, estoy usando esta medida en la misma tabla. Pero con 4 columnas diferentes. En la Selección utilizo ProductTimeStampFrom y ProductTimeStampTo. En la parte IF utilizo las columnas TimeFrom y TimeTo. Pero están en la misma mesa. Solo necesito filtrar el rango ob TimeFrom y TimeTo por un valor de ProductTimeStampFrom y ProductTimeStampTo..

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        @lennartos ,

        Estoy de acuerdo con la respuesta de AntonioM. Revisé su código y creo que dejar que SELECTEDVALUE(Data[TimestampForm])>=SELECTEDVALUE(Data[TimestampForm]) no tendrá sentido.

        InDateTimeRange =
        VAR _rangeStart =
            SELECTEDVALUE ( Data[TimestampFrom] )
        VAR _rangeEnd =
            SELECTEDVALUE ( Data[TimestampTo] )
        RETURN
            IF (
                SELECTEDVALUE ( Data[TimestampFrom] ) >= _rangeStart
                    && SELECTEDVALUE ( Data[TimestampTo] ) <= _rangeEnd
                    && SELECTEDVALUE ( Data[TimestampTo] ) <> BLANK (),
                1,
                0
            )

        Creo que la segmentación de datos es creada por las columnas Data[TimestampFrom] y Data[TimestampTo] en la misma tabla con sus datos.

        Su visual será filtrado por ellos directamente, su código no funcionará.

        Te sugiero que crees dos DimTables para rangeStart y rangeEnd.

        DimStart = CALENDARAUTO()
        DimeEnd = CALENDARAUTO()

        Medir:

        InDateTimeRange =
        VAR _rangeStart =
            SELECTEDVALUE ( DimStart[Date] )
        VAR _rangeEnd =
            SELECTEDVALUE ( DimEnd[TimestampTo] )
        RETURN
            IF (
                SELECTEDVALUE ( Data[TimestampFrom] ) >= _rangeStart
                    && SELECTEDVALUE ( Data[TimestampTo] ) <= _rangeEnd
                    && SELECTEDVALUE ( Data[TimestampTo] ) <> BLANK (),
                1,
                0
            )

        Saludos
        Rico Zhou

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