Forum Discussion
Suma
@MSAYED26 A ver qué piensas de esto. PBIX se adjunta debajo de la firma. En primer lugar, agregué un índice en Power Query. Entonces creo que después de eso solo necesitas la columna calculada "Tiempo de viaje" que puedes convertir fácilmente en una medida como esta:
Travel Time =
VAR __Departure = MAX([Departure station])
VAR __Arrival = MAX([Arrival station])
VAR __Line = MAX([Line])
VAR __DepartIndex = MAXX( FILTER( 'Table', [Line] = __Line && [Departure station] = __Departure ), [Index] )
VAR __ArrivalIndex = MAXX( FILTER( 'Table', [Line] = __Line && [Arrival station] = __Arrival ), [Index] )
VAR __Result = SUMX( FILTER( 'Table', [Index] >= __DepartIndex && [Index] <= __ArrivalIndex ), [Travel Time (min)] )
RETURN
__Result
En mi caso, creé una tabla calculada como esta:
Pairs =
VAR __Red = FILTER( 'Table', [Line] = "Red" )
VAR __RedPairs =
ADDCOLUMNS(
GENERATE(
SELECTCOLUMNS( __Red, "Line", [Line], "Departure station", [Departure station], "Index", [Index]),
SELECTCOLUMNS( __Red, "Arrival station", [Departure station], "Index1", [Index] )
),
"__Keep", IF( [Index] > [Index1] || ( [Departure station] = [Arrival station] && [Departure station] <> "A1"), 0, 1 )
)
VAR __Blue = FILTER( 'Table', [Line] = "Blue" )
VAR __BluePairs =
ADDCOLUMNS(
GENERATE(
SELECTCOLUMNS( __Blue, "Line", [Line], "Departure station", [Departure station], "Index", [Index]),
SELECTCOLUMNS( __Blue, "Arrival station", [Departure station], "Index1", [Index] )
),
"__Keep", IF( [Index] > [Index1] || ( [Departure station] = [Arrival station] && [Departure station] <> "A1"), 0, 1 )
)
VAR __Green = FILTER( 'Table', [Line] = "Blue" )
VAR __GreenPairs =
ADDCOLUMNS(
GENERATE(
SELECTCOLUMNS( __Green, "Line", [Line], "Departure station", [Departure station], "Index", [Index]),
SELECTCOLUMNS( __Green, "Arrival station", [Departure station], "Index1", [Index] )
),
"__Keep", IF( [Index] > [Index1] || ( [Departure station] = [Arrival station] && [Departure station] <> "A1"), 0, 1 )
)
VAR __Purple = FILTER( 'Table', [Line] = "Blue" )
VAR __PurplePairs =
ADDCOLUMNS(
GENERATE(
SELECTCOLUMNS( __Purple, "Line", [Line], "Departure station", [Departure station], "Index", [Index]),
SELECTCOLUMNS( __Purple, "Arrival station", [Departure station], "Index1", [Index] )
),
"__Keep", IF( [Index] > [Index1] || ( [Departure station] = [Arrival station] && [Departure station] <> "A1"), 0, 1 )
)
VAR __Table = UNION( __RedPairs, __BluePairs, __GreenPairs, __PurplePairs )
VAR __Result = SELECTCOLUMNS( FILTER( __Table, [__Keep] = 1 ), "Line", [Line], "Departure station", [Departure station], "Arrival station", [Arrival station] )
RETURN
__Result
Y luego una columna calculada en esa tabla como esta:
Travel Time =
VAR __Departure = [Departure station]
VAR __Arrival = [Arrival station]
VAR __Line = [Line]
VAR __DepartIndex = MAXX( FILTER( 'Table', [Line] = __Line && [Departure station] = __Departure ), [Index] )
VAR __ArrivalIndex = MAXX( FILTER( 'Table', [Line] = __Line && [Arrival station] = __Arrival ), [Index] )
VAR __Result = SUMX( FILTER( 'Table', [Index] >= __DepartIndex && [Index] <= __ArrivalIndex ), [Travel Time (min)] )
RETURN
__ResultMuchas gracias funciona pero necesito algo más, en la foto de abajo la dirección del azul de A1 a A2 por lo que el cálculo es correcto, pero la otra línea la dirección es la contraria, ¿puedes ayudarme?
- Syndicate_Admin2 years ago
Administrator
@MSAYED26 No he probado esto, pero *creo* que solo necesita invertir su comparación dependiendo de la línea:
Travel Time = VAR __Departure = MAX([Departure station]) VAR __Arrival = MAX([Arrival station]) VAR __Line = MAX([Line]) VAR __DepartIndex = MAXX( FILTER( 'Table', [Line] = __Line && [Departure station] = __Departure ), [Index] ) VAR __ArrivalIndex = MAXX( FILTER( 'Table', [Line] = __Line && [Arrival station] = __Arrival ), [Index] ) VAR __Result = SWITCH( __Line, "Blue", SUMX( FILTER( 'Table', [Index] >= __DepartIndex && [Index] <= __ArrivalIndex ), [Travel Time (min)] ), SUMX( FILTER( 'Table', [Index] <= __DepartIndex && [Index] >= __ArrivalIndex ), [Travel Time (min)] ) ) RETURN __Result- Syndicate_Admin2 years ago
Administrator
Todo el tiempo de viaje me da en blanco
- Syndicate_Admin2 years ago
Administrator
@MSAYED26 Implementé la medida según lo especificado y parece funcionar. Véase PBIX adjunto.