cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Frequent Visitor

Dax año a la fecha ytd recuento único

Necesito contar el número de reclamaciones únicas del año hasta la fecha mediante una fórmula DAX. Estoy usando segmentaciones y filtros de informes.

Las medidas de inteligencia de tiempo incorporadas no parecen manejar esto.

Soy nuevo en DAX y lucho para resolver esto.

Mis datos están básicamente estructurados de esta manera:

* Transacciones GL, que consisten en muchas filas para cada "No de reclamación" y cada transacción financiera, con una clave para la dimensión Período fiscal (fecha) y una clave para la dimensión Cuenta GL

* Dimensión de período fiscal tiene una jerarquía de fechas de Power BI integrada basada en la fecha de finalización del período fiscal. Dimensión del período fiscal también tiene Mes fiscal y Año fiscal como variables independientes que no forman parte de la fecha de Power BI integrada hiearchy.

En lenguaje empresarial sencillo, la fórmula debería funcionar como esta:

* Contar reclamaciones distintas con un gasto en el ejercicio hasta el final del mes fiscal.

(Estoy usando filtros y segmentaciones de datos para controlar las cuentas de GL, los períodos fiscales y las transacciones financieras que se incluirán en el informe.)

En sql, mi fórmula podría tener este aspecto (suponiendo que solo quiero totales de 2019 y 2020).

seleccionar q1.*, q2.*

( seleccione count ( distinct ( claim_no ) como YTD_2019_cnt
de gl_transactions
donde fiscal_year 2019 y fiscal_month <-8 y gl_account en ('FOO1', 'FOO2', 'FOO3') y no gl_transaction en ('FOO4')

) q1 ,

( seleccione count ( distinct ( claim_no ) como YTD_2020_cnt
de gl_transactions
donde fiscal_year 2020 y fiscal_month <-8 y gl_account en ('FOO1', 'FOO2', 'FOO3') y no gl_transaction en ('FOO4')

) q2

¿Alguna sugerencia de cómo hacer un recuento único de notificaciones ytd usando DAX?

6 REPLIES 6
Super User II
Super User II

Esto definitivamente no es como se vería su SQL (resultaría en un producto cartesiano) - Creo que quería decir unión todos.

En DAX se puede utilizar OR() o el equivalente . para combinar los resultados.

Meta código:

CALCULATE(DISTINCTCOUNT([Claim No]), filtros de 2019 Filtros de 2020 euros)

O bien, si hay riesgo de superposición, calcule los valores por separado y, a continuación, deje que el objeto visual los sume.

Gracias por su respuesta, pero se equivoca acerca de lo que el sql devuelve un producto cartesiano. Aquí está la salida real de mi sql usando vars y parms reales:

YTD_2019_CNTYTD_2020_CNT
15041274

Tenga en cuenta que el ejemplo sql era únicamente para iluminar un ejemplo de cómo podría verse la salida resultante. Los conceptos importantes son los siguientes:

* cada reclamación puede tener múltiples transacciones financieras en un período fiscal determinado (por ejemplo, año fiscal-mes fiscal).

* Quiero un recuento único de reclamaciones hasta el final del año fiscal-mes fiscal elegido.

* Los filtros de informe/página se aplicarán en el informe al subconjunto según sea necesario. El cálculo (recuento ytd único de notificaciones) debe ajustarse automáticamente a los filtros seleccionados por el usuario.

En cuanto a su comentario sobre el uso de filtros en la ecuación DAX . . .

El filtro principal será el ejercicio/mes fiscal o la fecha de finalización del período fiscal (pero NO la jerarquía de fecha de Power BI integrada????)???

Por ejemplo, esto funciona con las medidas de inteligencia de tiempo integradas:

Cantidad YTD de GL ( GL Cantidad YTD)

SI(
ISFILTERED('Dimensión del período fiscal'[Fecha de finalización del período fiscal]),
ERROR("Las medidas rápidas de inteligencia de tiempo solo se pueden agrupar o filtrar por la jerarquía de fechas proporcionada por Power BI o la columna de fecha principal."),
TOTALYTD(
[Cantidad GL],
'Dimensión del período fiscal'[Fecha de finalización del período fiscal]. [Fecha]
)
)
Sin embargo, la función distinctcount no parece ser válida en esta fórmula.
Por lo tanto, espero que tenga que usar filtros (como usted ha señalado). No sé cómo estructurarlos adecuadamente.

Buena opción para no confiar en la inteligencia de fecha y hora incorporada. Consume una gran cantidad de recursos para poco o ningún beneficio. Utilice mejor una tabla de calendario independiente que también le permita especificar los límites fiscales más fácilmente.

Eche un vistazo a este hilo para una discusión de "Año anterior hasta la fecha".

https://community.powerbi.com/t5/Desktop/Cumulative-Previous-Year-over-Year-Calculation-With-custom-...

Community Support
Community Support

Hola @Mike_Yukon ,

Puede crear una medida como DAX a continuación.

CountClaim_YTD =
CALCULATE (
    DISTINCTCOUNT ( 'gl_transactions'[claim_no] ),
    FILTER (
        'gl_transactions',
        'gl_transactions'[fiscal_year] = MAX ( 'gl_transactions'[ fiscal_year] )
            && 'gl_transactions'[fiscal_month] <= 8
            && 'gl_transactions'[gl_account] IN { 'FOO1', 'FOO2', 'FOO3' }
            && 'gl_transactions'[gl_transaction] <> 'FOO4'
    )
)

Saludos

Amy

Equipo de apoyo a la comunidad _ Amy

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por la respuesta. Ahora estoy hasta mis ojos en otro trabajo del proyecto y voy a comprobar su respuesta cuando tenga un poco de alivio.

Hola @Mike_Yukon ,

¿Tiene sentido? Si es así, marque amablemente la respuesta adecuada como una solución para ayudar a otros que tienen el problema similar y cerrar el caso. Si no, avísame y trataré de ayudarte más.

Saludos

Amy

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Community Conference

Microsoft Power Platform Communities

Check out the Winners!

secondImage

Create an end-to-end data and analytics solution

Learn how Power BI works with the latest Azure data and analytics innovations at the digital event with Microsoft CEO Satya Nadella.

Top Solution Authors
Top Kudoed Authors