Selección de datos de varias tablas de una sola fuente web usando M

Un usuario Pregunto ✅

xzfujc

Quiero obtener los datos de esta NBA datos de esta página web: http://www.espn.com/nba/standings/_/season/2018

Al usar esa URL en la sección de obtención de datos, obtengo 4 tablas. Una tabla con los nombres de los equipos de la conferencia del este, una tabla con las estadísticas de la temporada regular, un tabla de los nombres de los equipos del oeste conferencia, y una tabla de sus estadísticas de temporada regular.

En el editor avanzado del editor de consultas para la tabla 0 tengo lo siguiente:

dejar
Fuente = Web.Page(Web.Contents(«http://www.espn.com/nba/standings/_/season/2018»)),
Datos0 = Fuente{0}[Data],
#»Tipo cambiado» = Table.TransformColumnTypes(Data0,{{«», tipo de texto}})
en
#»Tipo cambiado»

En el editor avanzado del editor de consultas para la tabla 1 tengo lo siguiente:

dejar
Fuente = Web.Page(Web.Contents(«http://www.espn.com/nba/standings/_/season/2018»)),
Datos1 = Fuente{1}[Data],
#»Tipo cambiado» = Table.TransformColumnTypes(Data1,{{«W», Int64.Type}, {«L», Int64.Type}, {«PCT», escriba número}, {«GB», escriba texto} , {«HOME», escriba texto}, {«AWAY», escriba texto}, {«DIV», escriba fecha}, {«CONF», escriba texto}, {«PPG», escriba número}, {«OPP PPG «, escriba el número}, {«DIFF», escriba el número}, {«STRK», escriba el texto}, {«L10», escriba el texto}})
en
#»Tipo cambiado»

Quiero todos los datos de cada fuente en una tabla, pero por ahora, ¿cómo puedo usar M para obtener los datos de las tablas 0 y 1 en una sola tabla?

He probado lo siguiente:

dejar
Fuente = Web.Page(Web.Contents(«http://www.espn.com/nba/standings/_/season/2018»)),
Datos0 = {Fuente{0}[Data], Fuente{1}[Data]},
#»Tipo cambiado» = Table.TransformColumnTypes(Data0,{{«», escriba texto},{«W», Int64.Type}, {«L», Int64.Type}, {«PCT», escriba número}, {«GB», escriba el texto}, {«HOME», escriba el texto}, {«AWAY», escriba el texto}, {«DIV», escriba la fecha}, {«CONF», escriba el texto}, {«PPG», escriba el número}, {«OPP PPG», escriba el número}, {«DIFF», escriba el número}, {«STRK», escriba el texto}, {«L10», escriba el texto}
})
en
#»Tipo cambiado»

Pero aparece el mensaje de error: «Expresión.Error: no podemos convertir un valor de tipo Lista a tipo Tabla.
Detalles:
Valor=Lista
Tipo=Tipo»

¿Alguna sugerencia?

mfelix

Hola @xzfujc,

La combinación de ambas tablas como lo está haciendo es lo mismo que un anexo, necesita fusionar ambas tablas y luego tendrá un solo resultado.

Pruebe la codificación a continuación:

let
    Source = Web.Page(Web.Contents("http://www.espn.com/nba/standings/_/season/2018")),
    Data0 = Source{0}[Data],
    #"Changed Type" = Table.TransformColumnTypes(Data0,{{"", type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),
    Data1 = Source{1}[Data],
    #"Added Index1" = Table.AddIndexColumn(Data1, "Index", 1, 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Index",{"Index"},#"Added Index1",{"Index"},"Added Index1",JoinKind.LeftOuter),
    #"Expanded Added Index1" = Table.ExpandTableColumn(#"Merged Queries", "Added Index1", {"W", "L", "PCT", "GB", "HOME", "AWAY", "DIV", "CONF", "PPG", "OPP PPG", "DIFF", "STRK", "L10"}, {"W", "L", "PCT", "GB", "HOME", "AWAY", "DIV", "CONF", "PPG", "OPP PPG", "DIFF", "STRK", "L10"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded Added Index1",{"Index"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns",{{"", type text}, {"W", Int64.Type}, {"L", Int64.Type}, {"PCT", type number}, {"GB", type text}, {"HOME", type text}, {"AWAY", type text}, {"DIV", type text}, {"CONF", type text}, {"PPG", type number}, {"OPP PPG", type number}, {"DIFF", type number}, {"STRK", type text}, {"L10", type text}})
in
    #"Changed Type1"

Lo que estoy haciendo aquí es obtener información de la tabla 0 y agregar una columna de índice, luego seleccionar la tabla 1 y también agregar un índice, y finalmente fusionar las dos tablas por la columna de índice.

Saludos,

mfelix

mfelix

Hola @xzfujc,

La combinación de ambas tablas como lo está haciendo es lo mismo que un anexo, necesita fusionar ambas tablas y luego tendrá un solo resultado.

Pruebe la codificación a continuación:

let
    Source = Web.Page(Web.Contents("http://www.espn.com/nba/standings/_/season/2018")),
    Data0 = Source{0}[Data],
    #"Changed Type" = Table.TransformColumnTypes(Data0,{{"", type text}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1),
    Data1 = Source{1}[Data],
    #"Added Index1" = Table.AddIndexColumn(Data1, "Index", 1, 1),
    #"Merged Queries" = Table.NestedJoin(#"Added Index",{"Index"},#"Added Index1",{"Index"},"Added Index1",JoinKind.LeftOuter),
    #"Expanded Added Index1" = Table.ExpandTableColumn(#"Merged Queries", "Added Index1", {"W", "L", "PCT", "GB", "HOME", "AWAY", "DIV", "CONF", "PPG", "OPP PPG", "DIFF", "STRK", "L10"}, {"W", "L", "PCT", "GB", "HOME", "AWAY", "DIV", "CONF", "PPG", "OPP PPG", "DIFF", "STRK", "L10"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded Added Index1",{"Index"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns",{{"", type text}, {"W", Int64.Type}, {"L", Int64.Type}, {"PCT", type number}, {"GB", type text}, {"HOME", type text}, {"AWAY", type text}, {"DIV", type text}, {"CONF", type text}, {"PPG", type number}, {"OPP PPG", type number}, {"DIFF", type number}, {"STRK", type text}, {"L10", type text}})
in
    #"Changed Type1"

Lo que estoy haciendo aquí es obtener información de la tabla 0 y agregar una columna de índice, luego seleccionar la tabla 1 y también agregar un índice, y finalmente fusionar las dos tablas por la columna de índice.

Saludos,

mfelix

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *