Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
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
Tienes que escribir una medida para filtrar otro objeto visual.
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
Ahora puede aplicar el filtro de nivel visual
¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos🙂
@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
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
¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Apreciar con un kudos🙂
Lo siento, me olvidé de hacer un seguimiento de esto. Funciona perfectamente 🙂
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.
@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:
Voy a tratar de la (más complicada) sugerencia a continuación y ver ho wtha va.