Generar Curva S con Dax

  • Juan Jerez
    Participante

      Hola a todos !

      Les cuento que estoy tratando de generar una curva S de un proyecto en el cual solo cuento con las columnas de Nombre actividad, cantidad, fecha inicio y fecha termino. pero no logro que me la pueda graficar bien.

      A mi tabla principal le agregue 3 columnas para determinar las actividades coincidentes de inicio y fin que es la siguiente:

      CoincidenciaInicioFin =

      VAR MesInicio = MONTH(PMaestro[Fecha INICIO])

      VAR MesFin = MONTH(PMaestro[Fecha TERMINO])

      RETURN

      IF(

      MesInicio=MesFin,

      1,

      0)

      ActividesCompletadas =

      IF(

      PMaestro[Estado de Avance]=1,

      1,

      0

      )

      ActividadesCoincidentesFinalizadas =

      IF (PMaestro[ActividesCompletadas]=1&&

      PMaestro[CoincidenciaInicioFin]=1,

      1,

      0

      )

      Luego genere las formulas dax para el calculo de curva S de las actividades proyectadas con las siguientes formulas:

      ActividadesProyectadasInicio = COUNTROWS(PMaestro)

      ActividadesProyectadasFin =

      CALCULATE(

      [ActividadesProyectadasInicio],

      USERELATIONSHIP(

      Calendario[Fecha],

      PMaestro[Fecha TERMINO])

      )

      ActividadesProyectadasCoincidentes =

      SUM(PMaestro[CoincidenciaInicioFin]

      ActividadesProyectadas =

      [ActividadesProyectadasInicio]+[ActividadesProyectadasFin]-[ActividadesProyectadasCoincidentes]

      YTD ActividadesProyectadas =

      CALCULATE(

      [ActividadesProyectadas],

      DATESYTD(Calendario[Fecha])

      )

      Total Actividades =

      CALCULATE(

      [ActividadesProyectadas],

      all(PMaestro)

      )

      %YTDActividadesProyectada =

      DIVIDE([YTD ActividadesProyectadas],[Total Actividades])

       

      cuando lo visualizo en matriz  todo bien a excepción de YTD ActividadesProyectadas  y %YTDActividadesProyectada ya que no me los muestra como acumulados como podrán ver en las siguientes imágenes y cuando grafico evidentemente no me sale la curva S.

      Agradeceré mucho su ayuda

      Matriz

    • dlom
      Participante

        Qué tal Juan! El tema aquí es que la función DATESYTD reinicia el acumulado al iniciar un nuevo año. Por eso se ve que se van acumulando durante el año y en enero regresa a cero, donde empieza a acumular de nuevo.

         

        El resultado final con DATESYTD se queda igual a lo del año 2025 porque es el año para la última fecha del contexto de filtro.

         

        Ahora, para acumular a lo largo de los años vas a tener que hacer algo parecido como en la medida [TotalActividades] donde modificas el filtro usando CALCULATE con ALL y el acumulado lo tendrás que hacer sin la función DATESYTD.

         

        Para ir acumulando el resultado conforme se avanza en el tiempo vas a usar una medida parecida a esta:

         

        ActividadesProyectadasAcumuladas =
        CALCULATE (
            [ActividadesProyectadas],
            FILTER (
                ALL ( 'TablaCalendario' ),
                'TablaCalendario'[Fecha] <= MAX ( 'TablaCalendario'[Fecha] )
            )
        )

         

        Esta medida está usando CALCULATE para modificar el filtro de la TablaCalendario con la función FILTER. Luego quitas los filtros que esté aplicando la TablaCalendario con ALL. Pero lo interesante es lo que viene después.

         

        La parte de la medida "'TablaCalendario'[Fecha] <= MAX ( 'TablaCalendario'[Fecha] )" vuelve a filtrar las fechas para solo sumar lo que está previo a cada fecha de la TablaCalendario. Y cuando lo grafiques te debe de quedar como una curva S.

         

        Un abrazo,
        - Diego

      Viendo 1 respuesta (de un total de 1)
      • El debate ‘Generar Curva S con Dax’ está cerrado y no admite más respuestas.