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

Next up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now

Reply
cnschulz
Helper IV
Helper IV

Seleccione el rango de datos en función de los datos seleccionados

Gday,

Tengo un conjunto de actividades que son realizadas por los usuarios. Esentially, he USER_ID, ACTIVITY_ID, DATETIME. Lo que me gusta hacer es cuando un usuario de informe hace clic en un registro de actividad en un filtro, mostrar todas las actividades que se registraron dentro de un período de tiempo establecido de la actividad seleccionada. Por ejemplo (+- 1 hora) desde el tiempo de registro seleccionado. ¿Alguien sabe cómo crear algo así?

Salud

9 REPLIES 9
nandukrishnavs
Community Champion
Community Champion

@cnschulz

Tienes que escribir una medida para filtrar otro objeto visual.

Table.JPG

Deriva otra mesa. No hagas ninguna relación con esta mesa.

ActivityTable = SUMMARIZECOLUMNS('Table'[ACTIVITY_ID])

Utilice esta tabla en la segmentación

Cree una medida para filtrar la medida.

FilterMeasure =
VAR _activityID =
    CALCULATE (
        SELECTEDVALUE ( ActivityTable[ACTIVITY_ID] )
    )
VAR _selectedDatetime =
    CALCULATE (
        SELECTEDVALUE ( 'Table'[DATETIME] ),
        FILTER (
            ALL ( 'Table' ),
            'Table'[ACTIVITY_ID] = _activityID
        )
    )
VAR _minTime =
    _selectedDatetime
        - TIME ( 1, 0, 0 )
VAR _maxTime =
    _selectedDatetime
        + TIME ( 1, 0, 0 )
VAR _datetimeinrow =
    CALCULATE (
        SELECTEDVALUE ( 'Table'[DATETIME] )
    )
VAR _result =
    IF (
        _datetimeinrow >= _minTime
            && _datetimeinrow <= _maxTime,
        "Show",
        "Hide"
    )
RETURN
    _result

Capture.JPG

Ahora puede aplicar el filtro de nivel visual

Capture.JPG



¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos
🙂


Regards,
Nandu Krishna

@nandukrishnavs Muchas gracias por la solución detallada. Funciona perfectamente. 🙂

Encontré un error con esto al otro lado de los límites de la fecha. ¡Bucle DATE y TIME si supera el valor unitario! Así que si uso - TIEMPO(48, 0, 0) se mantendrá el día el mismo! También no va a funcionar decir, si resta 1 hora de 01/01/01 00:00:45 itw iii dejar el día el mismo!!!

Así que para arreglar esto utilicé una simple resta de enteros:

VAR _mydatetime - _olddatetime - 1/24

Esto subaplicará una hora y prederve los límites de fecha.

Gracias a todos por su ayuda.

@nandukrishnavs Im sentimos molestarle de nuevo, Me han pedido una extensión a este, pero a solo no puedo llegar a trabajar 😞

Nos gustaría la capacidad de seleccionar acciones *múltiples* en una lista y luego mostrar *todas* acciones que se encuentran dentro del búfer de tiempo de cualquiera de las acciones seleccionadas. Es decir: muchos a muchos en lugar de uno a varios. Por lo tanto, el elemento seleccionado tendría que ser una tabla, no un identificador individual.

¿Alguien tiene un examen similar que puede demostrar?

Gracias de nuevo

@cnschulz

Prueba esto

FilterMeasure = 
VAR _activityID =

        DISTINCT ( ActivityTable[ACTIVITY_ID] )
    
VAR _minTime = MINX(FILTER(ALL('Table'),'Table'[ACTIVITY_ID] IN _activityID),'Table'[DATETIME]) - ( 1 / 24 )
VAR _maxTime =
    MAXX(FILTER(ALL('Table'),'Table'[ACTIVITY_ID] IN _activityID),'Table'[DATETIME]) + ( 1 / 24 )
VAR _datetimeinrow =
    CALCULATE (
        SELECTEDVALUE ( 'Table'[DATETIME] )
    )
VAR _result =
    IF (
        _datetimeinrow >= _minTime
            && _datetimeinrow <= _maxTime,
        "Show",
        "Hide" 
    )
RETURN
    _result

Capture.JPG



¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos
🙂


Regards,
Nandu Krishna

Lo siento, me olvidé de hacer un seguimiento de esto. Funciona perfectamente 🙂

@cnschulz

Si el usuario no selecciona ningún filtro, desea ver todos los datos, puede controlarlos en la instrucción return.

Si su escenario es diferente, envíe como una nueva consulta junto con algunos datos válidos y la salida esperada en un formulario tabular.


Regards,
Nandu Krishna

amitchandak
Super User
Super User

@cnschulz , algo como esto

medidas de medidas
var _maxX á maxx(allselected(Table), Table[Datetime])
var _max á _maxX + tiempo(1,0,0)
var _min á _maxX - tiempo(1,0,0)
devolución
CALCULATE(Count(Table[value]), filter(All(Table), Table[Datetime]>-_min && Table[Datetime]<-_max))

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

@amitchandak aplausos, esto está cerca.

Esto devuelve el *count* de todas las coincidencias, sin embargo, necesito identificar las filas coincidentes, ya sea filtrando mágicamente o estableciendo una medida binaria: 1-match 0-no match

tenemos esto:

Necesito algo como esto:

Annotation 2020-05-15 121322-2.png

Voy a tratar de la (más complicada) sugerencia a continuación y ver ho wtha va.

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.

Top Kudoed Authors