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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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
Super User
Super User

@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))

@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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors