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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Rollo de DistinctCount + Filtros

Hola a todos

Mi conjunto de datos tiene una tabla de calendario y una tabla que contiene registros con varias propiedades que están vinculadas por fecha a la tabla de calendario, he configurado una medida para generar un recuento total móvil de ID de registro únicos durante los últimos 7 días como se muestra a continuación:

Unique Record IDs 7D Count = 
CALCULATE(
    SUMX(
        VALUES(Calendar[Date]), DISTINCTCOUNT(Records[ID]),
        FILTER(
            ALLSELECTED(Calendar),Calendar[Date] >= (max(Calendar[Date])-6) && Calendar[Date] <= max(Calendar[Date])
            )
            )

Esta medida funciona perfectamente si los datos no están filtrados, sin embargo, aplicar un filtro a uno de los campos de la tabla Registro restringe el rango de fechas disponible no me da el resultado que busco.

A continuación se muestra un ejemplo de la salida del recuento móvil después del filtrado

Fecha Identificadores de registro únicosConteo rodante (7D)
25/08/2024 0
26/08/2024 0
27/08/2024 33
28/08/2024 58
29/08/2024 1018
30/08/2024 624
31/08/2024 0
1/09/2024 0
2/09/2024 0
3/09/2024 0
4/09/2024 0
5/09/2024 0
6/09/2024 0
7/09/2024 0

Y aquí está la salida deseada

Fecha Identificadores de registro únicosConteo rodante (7D)
25/08/2024 00
26/08/2024 00
27/08/2024 33
28/08/2024 58
29/08/2024 1018
30/08/2024 624
31/08/2024 024
1/09/2024 024
2/09/2024 024
3/09/2024 021
4/09/2024 016
5/09/2024 06
6/09/2024 00
7/09/2024 00

Tenía la impresión de que ALLSELECTED podría anular el impacto del filtro aplicado a la tabla de registros, pero esa parece ser una suposición incorrecta de mi parte.

Encontré esta publicación que parecía ser una situación casi idéntica, sin embargo, no he tenido suerte adaptando la solución para obtener el resultado deseado. Cualquier sugerencia / asistencia será muy apreciada.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Todavía no he identificado exactamente cuál era el problema, pero parece que era algo en el conjunto de datos de origen porque cuando comencé desde cero con una copia nueva de los datos y volví a crear las medidas, todo se comportó como se esperaba.

En última instancia, quería una media móvil, aquí están las medidas finales:

Unique Record IDs = COALESCE(DISTINCTCOUNT(Records[ID]), 0)


Unique Record IDs Rolling 7D Average =
DIVIDE(
    CALCULATE(
        SUMX(
            VALUES('Calendar'[Date]), [Unique Record IDs]
            ),
            REMOVEFILTERS('Calendar'[Date]),
            'Calendar'[Date] >= (max('Calendar'[Date])-6) && 'Calendar'[Date] <= max('Calendar'[Date])
            ),
        7
)

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Todavía no he identificado exactamente cuál era el problema, pero parece que era algo en el conjunto de datos de origen porque cuando comencé desde cero con una copia nueva de los datos y volví a crear las medidas, todo se comportó como se esperaba.

En última instancia, quería una media móvil, aquí están las medidas finales:

Unique Record IDs = COALESCE(DISTINCTCOUNT(Records[ID]), 0)


Unique Record IDs Rolling 7D Average =
DIVIDE(
    CALCULATE(
        SUMX(
            VALUES('Calendar'[Date]), [Unique Record IDs]
            ),
            REMOVEFILTERS('Calendar'[Date]),
            'Calendar'[Date] >= (max('Calendar'[Date])-6) && 'Calendar'[Date] <= max('Calendar'[Date])
            ),
        7
)

Syndicate_Admin
Administrator
Administrator

Hola @JCMT

Dos cosas a tener en cuenta:
AllSelected quita los filtros internos, por lo que los filtros causados por la fila de fecha dentro del objeto visual.

Todo elimina todos los filtros de la tabla/columna dada, tanto internos (visuales) como externos (segmentación).

Esto podría ser parte del malentendido.

Segundo:

Calcular le permite cambiar, reemplazar o eliminar filtros.

Filter mantiene los filtros existentes y los agrega.

Por lo tanto, esto también podría ser una causa de su problema.

Muchas gracias por su respuesta.

Por último, aplicar un filtro a uno de los campos de la tabla Registro

Eliminar/agregar filtros a la tabla de calendario afectará a la tabla de registros.

Sin embargo, si el filtro está en alguna otra columna, por ejemplo, RecordType, esto no se eliminaría mediante AllSelected aquí.

Podría usar algo como AllExcept(Record, Calendar[Date]) para quitar todos los filtros de la tabla Record, pero mantener los filtros en la tabla Calendar.

¿Cuáles son los filtros que está agregando y cuáles desea conservar?


Quiero mantener el filtro en la tabla de registros (por ejemplo: RecordType) y eliminar cualquier filtrado implícito en la tabla de calendario.

No puedo pegar datos sin procesar, pero puedo generar una maqueta si es necesario para ayudar más.

Helpful resources

Announcements
September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Top Solution Authors