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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Tabla de resúmenes con Fecha más temprana / Fecha más tardía con condición

Estimada comunidad

Tengo el siguiente problema

Hay múltiples proyectos (más de 200). Cada proyecto tiene una disciplina múltiple y cada disciplina tiene diferentes tareas en el conjunto de datos original. Consulte los datos de muestra a continuación. Me gustaría resumir los datos en una tabla y luego en un diagrama de Gant: Nombre del proyecto, Nombre de la disciplina, Fecha de inicio, Fecha de finalización. Por lo tanto, la tabla debe usar la fecha de inicio anterior como fecha de inicio de resumen y la fecha de finalización más tardía como fecha de finalización de resumen, cuál es la fecha más temprana y la fecha más tardía según disicpline

Soy nuevo en DAX e intenté usar esta fórmula, pero parece que no funciona:

eFechaInicio=
CALCULAR (
MIN ( 'Tabla1'[Inicio] ),
FILTRO (
«Cuadro 1»,
[Inicio] <= ANTERIOR ( 'Tabla1'[Nombre] )
&& 'Tabla1'[Nombre] = ANTERIOR ( 'Tabla1' [FY] )
)
)
DEVOLUCIÓN
SI (
[Inicio] <> ESPACIO EN BLANCO ()
&& [Finalizar] <> ESPACIO EN BLANCO ()
)

EFinishDate =
CALCULAR (
MÁXIMO ( 'Tabla1'[Finalizar] ),
FILTRO (
«Cuadro 1»,
[Finalizar] >= ANTERIOR ( 'Tabla1' [Fin] )
&& 'Tabla1'[Nombre]= ANTERIOR ( 'Tabla1' [FY] )
)
)
DEVOLUCIÓN
SI (
[Inicio] <> ESPACIO EN BLANCO ()
&& [Finalizar] <> ESPACIO EN BLANCO (),
)

Estos son los datos originales:

Nombre del proyectoNombreDisciplinaEmpezarTerminarMI
Rampa A
Gran CarreteraRampa A - Inicio de trabajo físicoRampa A 13-nov-24
Gran CarreteraRampa A - Finalización de la obra físicaRampa A 7-dic-252026
Gran CarreteraRampa A - Finalización de defectosRampa A 10-feb-26
Gran CarreteraRampa A - Preparación operativaRampa A 15-Abr-26
Acceso B
Gran CarreteraAcceso B - Inicio de la obra físicaAcceso B7-Mar-23
Gran CarreteraAcceso B - Finalización de la obra físicaAcceso B7-Mar-2328-Ago-252026
Gran CarreteraAcceso B- Finalización de defectosAcceso B 16-nov-25
Unidad de control
Gran CarreteraUnidad de control - Inicio de trabajo físicoUnidad de control22-Ago-24
Gran CarreteraUnidad de control - Finalización de la obra físicaUnidad de control22-Ago-2431-Mar-252025
Gran CarreteraUnidad de control - Eliminación de defectosUnidad de control1-Nov-2428-Abr-252026
Gran CarreteraUnidad de control - Disponibilidad operativaUnidad de control 15-sep-25
Paisaje vial
Avenida HoltPaisaje de la carretera - Inicio de la obra físicaPaisaje vial16-ene-23
Avenida HoltPaisaje vial - Finalización de la obra físicaPaisaje vial16-ene-2311-Ago-232024
Avenida HoltPaisaje de carreteras - Finalización de defectosPaisaje vial 14-feb-24
Avenida HoltPaisaje vial - Preparación operativaPaisaje vial14-feb-2414-feb-24
Tanque de aguas pluviales
Avenida HoltTanque de aguas pluviales - Inicio del trabajo físicoTanque de aguas pluviales 1-Mar-22
Avenida HoltTanque de aguas pluviales - Finalización del trabajo físicoTanque de aguas pluviales 31-Mar-23 2023
Avenida HoltFinalización de defectos del tanque de aguas pluvialesTanque de aguas pluviales 31-dic-24
Avenida HoltTanque de aguas pluviales: preparación operativaTanque de aguas pluviales 1-Mar-25

La tabla resumida debería ser así:

Nombre del proyectoNombreEmpezarTerminarMI
Gran CarreteraRampa A13-nov-2415-Abr-262027
Gran CarreteraAcceso B7-Mar-2316-nov-252026
Gran CarreteraUnidad de control22-Ago-2415-sep-252026
Avenida HoltPaisaje vial16-ene-2314-feb-242024
Avenida HoltTanque de aguas pluviales 1-Mar-221-Mar-252025

Y resuma gant visual de la siguiente manera:

Narsis_0-1715553879950.png

¿Alguien puede ayudarme con esto?

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola

Este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Project Name", type text}, {"Name", type text}, {"Discipline", type text}, {"Start", type date}, {"Finish", type date}, {"FY", Int64.Type}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each [Project Name] <> null and [Project Name] <> ""),
    #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each [Name] <> null and [Name] <> ""),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows1",{"Name"}),
    #"Grouped Rows" = Table.Group(#"Removed Columns", {"Project Name", "Discipline"}, {{"Start", each List.Min([Start]), type nullable datetime}, {"End", each List.Max([Finish]), type nullable datetime}})
in
    #"Grouped Rows"

No sé cómo obtener el FY.

Gracias, lo intentaré.

por ahora creé dos columnas, fecha de inicio de resumen y fecha de finalización de resumen con filtro de proyecto y disciplina:

SummaryFinishDate =
FUERON Nombre del proyecto = 'Tabla 1'[Nombre del proyecto]
FUERON DisciplineName (Nombre de la disciplina) = 'Tabla 1'[Disciplina]

DEVOLUCIÓN
CALCULAR(
MÁXIMO('Tabla 1'[Finalizar].[Fecha]),
FILTRO(
'Tabla 1',
'Tabla 1'[Nombre del proyecto] = Nombre del proyecto &&
'Tabla 1'[Disciplina] = Nombre de la disciplina
)
)
Y funciona para Gantt de mesa y vinculado.
Syndicate_Admin
Administrator
Administrator

Hola V-Jianpeng-MSFT

Gracias por su respuesta. No puedo crear una nueva tabla porque tengo que agregar más columnas/valor del conjunto de datos actual a mi objeto visual una vez que se ordena el resumen de inicio temprano y finalización tardía. Y tampoco hay un ID / cpde único para hacer una relación entre conjuntos de datos o tablas. Es posible que tenga que crear varias columnas en mi conjunto de datos actual. ¿Alguna idea?

Estoy probando con este DAX :

SummaryFinishDate =
FUERON Nombre del proyecto = 'Tabla 1'[Nombre del proyecto]
FUERON DisciplineName (Nombre de la disciplina) = 'Tabla 1'[Disciplina]

DEVOLUCIÓN
CALCULAR(
MÁXIMO('Tabla 1'[Finalizar].[Fecha]),
FILTRO(
'Tabla 1',
'Tabla 1'[Nombre del proyecto] = Nombre del proyecto &&
'Tabla 1'[Disciplina] = Nombre de la disciplina
)
)

Hola @Narsis

Gracias por su respuesta. Si no puede crear una nueva tabla de cálculo. Puede crear una medida de la siguiente manera:

start date = 
VAR _table = CALCULATETABLE (
    SUMMARIZE (
        FILTER ( 'Table', 'Table'[Name] <> BLANK () ),
        'Table'[Project Name],
        'Table'[Discipline],
        "start", CALCULATE ( MIN ( 'Table'[Start] ) ),
        "Finish", CALCULATE ( MAX ( 'Table'[Finish] ) ),
        "FY", VAR _maxday = MAX ( 'Table'[Finish] ) RETURN YEAR ( _maxday )
    )
)
VAR _project_name = SELECTEDVALUE('Table'[Project Name])
VAR _discipline = SELECTEDVALUE('Table'[Discipline])
RETURN CALCULATE(
    MAX([Start]),
    FILTER(_table,
        'Table'[Discipline]=_discipline&&'Table'[Project Name]=_project_name
    )
)
End date = 
VAR _table = CALCULATETABLE (
    SUMMARIZE (
        FILTER ( 'Table', 'Table'[Name] <> BLANK () ),
        'Table'[Project Name],
        'Table'[Discipline],
        "start", CALCULATE ( MIN ( 'Table'[Start] ) ),
        "Finish", CALCULATE ( MAX ( 'Table'[Finish] ) ),
        "FY", VAR _maxday = MAX ( 'Table'[Finish] ) RETURN YEAR ( _maxday )
    )
)
VAR _project_name = SELECTEDVALUE('Table'[Project Name])
VAR _discipline = SELECTEDVALUE('Table'[Discipline])
RETURN CALCULATE(
    MAX([Finish]),
    FILTER(_table,
        'Table'[Discipline]=_discipline&&'Table'[Project Name]=_project_name
    )
)

Usa estas dos medidas en tu diagrama de Gantt:

vjianpengmsft_0-1715586488673.png

Cómo obtener respuestas rápidas a tu pregunta

Si no ayuda, proporcione más detalles con la salida deseada y el archivo pbix sin información de privacidad (o algunos datos de muestra).

Saludos

Jianpeng Li

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

Syndicate_Admin
Administrator
Administrator

Hola, @Narsis

En función de la descripción, puede probar las siguientes expresiones DAX:

Table 2 = 
CALCULATETABLE (
    SUMMARIZE (
        FILTER ( 'Table', 'Table'[Name] <> BLANK () ),
        'Table'[Project Name],
        'Table'[Discipline],
        "start", CALCULATE ( MIN ( 'Table'[Start] ) ),
        "Finish", CALCULATE ( MAX ( 'Table'[Finish] ) ),
        "FY", VAR _maxday = MAX ( 'Table'[Finish] ) RETURN YEAR ( _maxday )
    )
)

El cuadro resumen es el siguiente:

vjianpengmsft_0-1715566005132.png

A continuación, puede utilizar estos campos en el diagrama de Gant de la siguiente manera:

vjianpengmsft_1-1715566087236.png

Puede buscar el diagrama de Gantt que desee en el mercado visual:

vjianpengmsft_2-1715566166338.png

vjianpengmsft_3-1715566192234.png

He proporcionado el archivo PBIX utilizado esta vez a continuación.

Cómo obtener respuestas rápidas a tu pregunta

Si no ayuda, proporcione más detalles con la salida deseada y el archivo pbix sin información de privacidad (o algunos datos de muestra).

Saludos

Jianpeng Li

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

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.

Top Kudoed Authors