Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
4 years ago

Visual es lento

Hola

Tengo un visual que muestra las cuentas por cobrar por Year_periodno como a continuación:

michaelvdb1_0-1640346046408.png

El importe pendiente se calcula filtrando la fecha de factura antes de la fecha seleccionada y la fecha de coincidencia es posterior a la fecha seleccionada. La fecha seleccionada es Calender[date] en la segmentación de datos. No hay relación entre la tabla de calendario y la tabla de facturas. Supongo que esto lo hace lento. Cuando activo la relación entre Facturas[Invoice_date] y Calandra[Fecha], no obtengo los valores correctos.

¿Alguien conoce una buena solución?

9 Replies

  • @michaelvdb1 , ¿es una medida como

    Antes de la fecha =
    var _max = maxx(allselected(Date),Date[Date])
    devolución
    calculate( Sum(Table[Value]), filter(all('Date'), 'Date'[Date] <=_max))

    Otra opción es usar antes de la segmentación de datos con tabla de fechas unidas

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator
      Es así

      Cantidad pendiente =
      var t = SUMMARIZE(FACT_rows,FACT_rows[Invoice_amount], FACT_rows[Invoice_amount_outstanding], FACT_rows[Invoice_date], FACT_rows[Invoice_period], FACT_rows[Invoice_duedate], FACT_rows[Matchdate])

      devolución
      CALCULATE(SUMX(test, [Importe de la factura]), FILTER(FACT_rows, FACT_rows[Year-period]<= [período de año seleccionado]))
      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        @michaelvdb1 , ¿hay algún duplicado en los datos debido a los cuales ha utilizado resumidos?

        de lo contrario, esto debería hacer

        CALCULATE(SUM(FACT_rows[Importe de la factura]), FILTER(FACT_rows, FACT_rows[Year-period]<= [selected yearperiod]))

  • Hay @michaelvdb1 ,

    Por favor, pruébalo.

    Optimización de las funciones de DAX.

    • No utilice variables escalares en SUMMARIZE()

    La función SUMMARIZE() se utiliza tradicionalmente para agrupar columnas y devolver las agregaciones resultantes. Sin embargo, la función SUMMARIZECOLUMNS() es más nueva y está más optimizada. Usa eso en su lugar.

    Utilice SUMMARIZE() solo para los elementos agrupados de una tabla que no tengan ninguna medida o agregación asociada. Por ejemplo: SUMMARIZE(Table, Column1, Column2)

    Saludos

    Equipo de apoyo a la comunidad _ Polly

    Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.