Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
5 years ago
Solved

Pivotar o no pivotar

Hola

Me pregunto qué es más eficaz para Power BI.

Tengo una tabla que tiene una fila para cada fecha y cada columna es un valor numérico. Algunas columnas son solo columnas de precio y algunas columnas son específicas de la región. Esto es solo un ejemplo y va a haber más columnas que solo el precio de la región que son específicas de la región, como el volumen, la temperatura, etc.

fecha precio Precio na Precio ue Precio FE
1/1/20211.52.33.36.6
1/2/20211.42.63.66.3
1/3/20211.62.73.26.9
1/4/20211.42.53.67.3
1/5/20211.52.23.67.1
1/6/20211.62.73.46.5
1/7/20211.62.73.66.8
1/8/20211.62.43.27.3
1/9/20211.42.63.36.9

¿Sería mejor pivotar los datos para que haya una columna de fecha, una columna de región y la columna de precio? Al hacerlo de esta manera, se crean más filas, pero se reduce la cantidad de columnas. Así:

fecha región Precio de la región precio
1/1/2021en2.31.5
1/1/2021Tenía3.31.5
1/1/2021FE6.61.5
1/2/2021en2.61.4
1/2/2021Tenía3.61.4
1/2/2021FE6.31.4

¿O qué tal si creo 3 tablas calculadas separadas para cada región en su lugar? Por lo tanto, cada tabla calculada será solo 2 columnas, con la fecha y el precio para esa región.

¿Cuál sería el mejor modelo de datos de estos, o hay una manera aún mejor que no mencioné?

4 Replies

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      @amitchandak

      Pregunta de seguimiento:

      ¿Hay alguna manera de pivotar fácilmente esto en la salida deseada sin tener que crear una gran cantidad de pasos adicionales para deshacerse de las filas duplicadas:

      Fecha NA Precio UE Precio FE Precio NA Temp EU Temp FE Temp
      1/1/2021 2.3 3.3 6.6 10 40 60
      1/2/2021 2.6 3.6 6.3 20 50 60
      1/3/2021 2.7 3.2 6.9 30 40 60
      1/4/2021 2.5 3.6 7.3 10 50 60
      1/5/2021 2.2 3.6 7.1 20 40 60
      1/6/2021 2.7 3.4 6.5 30 50 60
      1/7/2021 2.7 3.6 6.8 10 40 60
      1/8/2021 2.4 3.2 7.3 20 50 60
      1/9/2021 2.6 3.3 6.9 30 40 60


      deseado:

      Fecha Región Región Precio Región Temp
      1/1/2021 NA 2.3 10
      1/1/2021 UE 3,3 40
      1/1/2021 FE 6,6 60
      1/2/2021 NA 2,6 20
      1/2/2021 UE 3,6 50
      1/2/2021 FE 6,3 60


      La forma en que lo estoy haciendo ahora es que desesfilaré las columnas y, a continuación, crearé una columna calculada para que coincida con las regiones y, a continuación, filtraré las que no coincidan. Parece un montón de pasos adicionales, pero no estoy seguro de si hay una mejor manera de hacerlo

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Anulación de la dinamización de todos excepto la fecha, divida la columna de atributos y, a continuación, pivote en la columna Temp/Price.

        let
            Source = <....>,
            #"Unpivoted Columns" = Table.UnpivotOtherColumns(Source, {"Date"}, "Attribute", "Value"),
            #"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Columns", "Attribute", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Region", "Column"}),
            #"Pivoted Column" = Table.Pivot(#"Split Column by Delimiter", List.Distinct(#"Split Column by Delimiter"[Column]), "Column", "Value")
        in
            #"Pivoted Column"
  • Recomendaría la siguiente versión:

    fecharegiónprecio
    1/1/2021en2.3
    1/1/2021Tenía3.3
    1/1/2021FE6.6
    1/1/2021ninguno1.5
    1/2/2021en2.6
    1/2/2021Tenía3.6
    1/2/2021FE6.3
    1/2/2021ninguno1.4