Forum Discussion

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

Error de pivote

Hola chicos,

Soy nuevo en Power BI y me enfrento a algunos problemas básicos. Aprecia si alguien podría ayudar.

Tengo un problema en Pivoting the elements. Llamo a esta API ("https://management.azure.com/subscriptions/{Subscription}/providers/Microsoft.Compute/skus?api-version=2021-07-01") y obtengo los datos para enumerar todos los tamaños de máquinas virtuales en Azure y en esta para una columna tengo una selección en algunos campos particulares para estar en mis datos. Ahora esos se guardan como filas y los necesito como columnas separadas, he intentado Pivotar esa columna. pero los datos requeridos están obteniendo "Error"

Estoy recibiendo los datos como se muestra a continuación

Sudharshan1919_0-1639117198773.png


En la columna "value.capabilitiesname" he seleccionado solo los siguientes campos según mi requisito, el resto de ellos están ocultos. Después de seleccionar los campos obligatorios, obtengo los datos requeridos, pero las otras columnas se duplican. Eso significa que he seleccionado vCPU, MemoryGB, vCPUsAvailable, vCPUsPerCore y para cada archivo estoy obteniendo la duplicación de datos de otras columnas. Se repiten para cada uno de los archivos que he seleccionado.
Así que para deshacerme de esos he Pivotado las columnas como se muestra a continuación y obteniendo el error si selecciono la opción No agregar mientras pivota.

Sudharshan1919_1-1639117198775.png

Sudharshan1919_2-1639117198517.png


Como puede ver a continuación, obtuve el formato requerido, pero los otros campos de datos están en Error.

Sudharshan1919_3-1639117198781.png


Por favor, ayúdame y menciona el proceso paso a paso para resolver este problema.

Gracias
Sudharshan.

  • ¿@Sudharshan1919

    Aquí tienes si quieres hacerlo PQ. el truco es que tienes que decirle a PQ que cada 4 filas deben tratarse como una sola fila después de pivotar. así que he añadido índice, dividir y redondear hacia arriba. use el código que he pegado por fin.

    Thingsclump_0-1639130730842.png

    Thingsclump_1-1639130730645.png

    dejar
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCsssKilNzPFNTM7IzEstVtJRcjQEEmXOAaEgjqFSrA5ORb6puflFlSBVeuam+BSCTUssS8zMSUzKSSVkLEh1cEFqUXJ+EVFqQRwjotxpRKo78RqL5k6g2lgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) en la tabla de tipos [resourcetype = _t, valuename = _t, capabilitiesname = _t, capabilityvalue = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"resourcetype", type text}, {"valuename", type text}, {"capabilitiesname", type text}, {"capabilityvalue", type number}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1, Int64.Type),
    #"Módulo insertado" = Table.AddColumn(#"Índice agregado", "Módulo", cada número.Mod([Índice], 4), número de tipo),
    #"Columnas eliminadas" = Table.RemoveColumns(#"Módulo insertado",{"Módulo"}),
    #"Columna dividida" = Table.TransformColumns(#"Columnas eliminadas", {{"Índice", cada _ / 4, tipo número}}),
    #"Rounded Up" = Table.TransformColumns(#"Columna dividida",{{"Índice", Number.RoundUp, Int64.Type}}),
    #"Columna pivotada" = Table.Pivot(#"Redondeado hacia arriba", List.Distinct(#"Redondeado hacia arriba"[capabilitiesname]), "capabilitiesname", "capabilityvalue")
    en
    #"Columna pivotada"

    Gracias

    cosasagrump

    www.thingsclump.com

    solución accpet si esto funciona para usted.

7 Replies

  • @Sudharshan1919

    ¿Por qué los necesitas en columnas? Puede usar el objeto visual 'Matrix' para hacer el pivote por usted (no suele recomendar hacer esto en Power Query). Este artículo es para Excel, pero también se aplica a las tablas de datos de Power BI: https://www.myonlinetraininghub.com/excel-tabular-data-format

    Para ver más información sobre el error, haga clic en la celda que dice 'Error', pero NO haga clic en el enlace Error. Verá un mensaje en la parte inferior de la tabla que explica cuál es el error.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Eh.. Hola @AllisonKennedy

      Soy consciente de Matrix Visual.. aquí necesito unir esta mesa con otra haciendo una relación. Así que al hacer la relación y agregar Matrix el Visual Par no parecía bueno y era lo confuso de entender cuando vemos la parte visual.

      A continuación se muestra mi tabla y cuando me uno a la tabla de tamaños de VM con la siguiente, debe mostrar las características de VM que mencioné en la 1ª publicación.

      4.png

      Ahora al agregar la matriz se ve como a continuación y también he probado varios otros trucos alternando las filas y columnas en la opción del editor de visualización, aunque no funcionó.

      Sudharshan1919_2-1639121515127.png

      4.png

      Cuando añado los campos de tabla Tamaños de máquina virtual aquí, no obtengo los datos requeridos. está llegando a ser seleccionado Primero o último sólo

      Sudharshan1919_3-1639122841059.png

      Sudharshan1919_4-1639122905621.png

      Gracias

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        ¿@Sudharshan1919

        Aquí tienes si quieres hacerlo PQ. el truco es que tienes que decirle a PQ que cada 4 filas deben tratarse como una sola fila después de pivotar. así que he añadido índice, dividir y redondear hacia arriba. use el código que he pegado por fin.

        Thingsclump_0-1639123532900.png

        Thingsclump_1-1639123601174.png

        dejar
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCsssKilNzPFNTM7IzEstVtJRcjQEEmXOAaEgjqFSrA5ORb6puflFlSBVeuam+BSCTUssS8zMSUzKSSVkLEh1cEFqUXJ+EVFqQRwjotxpRKo78RqL5k6g2lgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) en la tabla de tipos [resourcetype = _t, valuename = _t, capabilitiesname = _t, capabilityvalue = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"resourcetype", type text}, {"valuename", type text}, {"capabilitiesname", type text}, {"capabilityvalue", type number}}),
        #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1, Int64.Type),
        #"Módulo insertado" = Table.AddColumn(#"Índice agregado", "Módulo", cada número.Mod([Índice], 4), número de tipo),
        #"Columnas eliminadas" = Table.RemoveColumns(#"Módulo insertado",{"Módulo"}),
        #"Columna dividida" = Table.TransformColumns(#"Columnas eliminadas", {{"Índice", cada _ / 4, tipo número}}),
        #"Rounded Up" = Table.TransformColumns(#"Columna dividida",{{"Índice", Number.RoundUp, Int64.Type}}),
        #"Columna pivotada" = Table.Pivot(#"Redondeado hacia arriba", List.Distinct(#"Redondeado hacia arriba"[capabilitiesname]), "capabilitiesname", "capabilityvalue")
        en
        #"Columna pivotada"

        Gracias

        cosasagrump

        www.thingsclump.com

        solución accpet si esto funciona para usted.

  • ¿@Sudharshan1919

    Aquí tienes si quieres hacerlo PQ. el truco es que tienes que decirle a PQ que cada 4 filas deben tratarse como una sola fila después de pivotar. así que he añadido índice, dividir y redondear hacia arriba. use el código que he pegado por fin.

    Thingsclump_0-1639130730842.png

    Thingsclump_1-1639130730645.png

    dejar
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCsssKilNzPFNTM7IzEstVtJRcjQEEmXOAaEgjqFSrA5ORb6puflFlSBVeuam+BSCTUssS8zMSUzKSSVkLEh1cEFqUXJ+EVFqQRwjotxpRKo78RqL5k6g2lgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) en la tabla de tipos [resourcetype = _t, valuename = _t, capabilitiesname = _t, capabilityvalue = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"resourcetype", type text}, {"valuename", type text}, {"capabilitiesname", type text}, {"capabilityvalue", type number}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1, Int64.Type),
    #"Módulo insertado" = Table.AddColumn(#"Índice agregado", "Módulo", cada número.Mod([Índice], 4), número de tipo),
    #"Columnas eliminadas" = Table.RemoveColumns(#"Módulo insertado",{"Módulo"}),
    #"Columna dividida" = Table.TransformColumns(#"Columnas eliminadas", {{"Índice", cada _ / 4, tipo número}}),
    #"Rounded Up" = Table.TransformColumns(#"Columna dividida",{{"Índice", Number.RoundUp, Int64.Type}}),
    #"Columna pivotada" = Table.Pivot(#"Redondeado hacia arriba", List.Distinct(#"Redondeado hacia arriba"[capabilitiesname]), "capabilitiesname", "capabilityvalue")
    en
    #"Columna pivotada"

    Gracias

    cosasagrump

    www.thingsclump.com

    solución accpet si esto funciona para usted.