cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Regular Visitor

Obtener lista o matriz de valores de campo dependiendo de otro campo

Hola

Tengo una tabla que para cada ocurrencia de un campo puede tener una, dos o incluso tres ocurrencias de otro campo, como se muestra a continuación:

Nelson_Marquez_0-1604420951210.png

Quiero decir, me gustaría obtener una columna para 'Local de descarga' e introducir los elementos "Local de carga", aquí identificados como "Fuente 1" y "Fuente 2" en columnas, es decir, 'Local de carga 1' y 'Local de carga 2'. Las filas serían, en este ejemplo, respectivamente "ES15-Castellon-CLH Depot"; "Refinería de Huelva" y "Refinería de Castellón".

A continuación represento lo que quiero decir, aquí creado con la ayuda de Excel:

Nelson_Marquez_1-1604421480119.png

Esto suena como el manejo de matrices, pero como soy relativamente nuevo con PowerBI no tengo idea de cómo hacer esto.

La ayuda sería muy apreciada.

Nelson

1 ACCEPTED SOLUTION
Super User II
Super User II

@Nelson_Marquez,

Pruebe esto en Power Query. Copie el código a partir de GroupRows y péguelo en el editor de consultas.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8ihNzSlL1A1KTcvMSy2qVNJRcg02NNV1TiwuSc3Jyc/TdfbxUEhJLcgvUYrViVZCiBOrA6bOEKLQTLcktRhVxginjDGqTCwA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Local de carga" = _t, #"Local de descarga" = _t]),
    GroupRows = Table.Group(
      Source, 
      {"Local de descarga"}, 
      {"Local de carga group", each Table.SelectColumns(_, "Local de carga")[Local de carga]}
    ),
  ExtractValues = Table.TransformColumns(
      GroupRows, 
      {"Local de carga group", each Text.Combine(List.Transform(_, Text.From), "|"), type text}
    ),
  SplitLocalDeCarga = Table.SplitColumn(
      ExtractValues, 
      "Local de carga group", 
      Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), 
      {"Local de carga group.1", "Local de carga group.2", "Local de carga group.3"}
    ),
  RenameColumns = Table.RenameColumns(
      SplitLocalDeCarga, 
      {
        {"Local de carga group.1", "Local de carga 1"}, 
        {"Local de carga group.2", "Local de carga 2"}, 
        {"Local de carga group.3", "Local de carga 3"}
      }
    )
in
  RenameColumns

Resultado:

DataInsights_0-1604432461073.png

Datos de muestra:

DataInsights_1-1604432480095.png

View solution in original post

1 REPLY 1
Super User II
Super User II

@Nelson_Marquez,

Pruebe esto en Power Query. Copie el código a partir de GroupRows y péguelo en el editor de consultas.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8ihNzSlL1A1KTcvMSy2qVNJRcg02NNV1TiwuSc3Jyc/TdfbxUEhJLcgvUYrViVZCiBOrA6bOEKLQTLcktRhVxginjDGqTCwA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Local de carga" = _t, #"Local de descarga" = _t]),
    GroupRows = Table.Group(
      Source, 
      {"Local de descarga"}, 
      {"Local de carga group", each Table.SelectColumns(_, "Local de carga")[Local de carga]}
    ),
  ExtractValues = Table.TransformColumns(
      GroupRows, 
      {"Local de carga group", each Text.Combine(List.Transform(_, Text.From), "|"), type text}
    ),
  SplitLocalDeCarga = Table.SplitColumn(
      ExtractValues, 
      "Local de carga group", 
      Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), 
      {"Local de carga group.1", "Local de carga group.2", "Local de carga group.3"}
    ),
  RenameColumns = Table.RenameColumns(
      SplitLocalDeCarga, 
      {
        {"Local de carga group.1", "Local de carga 1"}, 
        {"Local de carga group.2", "Local de carga 2"}, 
        {"Local de carga group.3", "Local de carga 3"}
      }
    )
in
  RenameColumns

Resultado:

DataInsights_0-1604432461073.png

Datos de muestra:

DataInsights_1-1604432480095.png

View solution in original post

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.