Almacenar data obtenida desde la web

  • Tam
    Espectador

      Estimad@s

      Espero tod@s se encuentren bien! planteo acá una duda que quizás es muy novata. Estoy tratando de obtener algunos valores desde la web, que cambian todos los días (son estimaciones que publican diariamente) y la idea es con el tiempo, crear un reporte que me permita ver la diferencia entre las estimaciones y los valores reales alcanzados.

      Como las estimaciones cambian día a día y las obtengo desde un sitio web, no sé cómo hacer para que queden almacenadas en alguna tabla y así luego poder obtener el reporte comparativo en el tiempo.

      A modo de ejemplo:

      En este link está la estimación diaria: https://docs.google.com/spreadsheets/d/e/2PACX-1vSW914EnnbhZBHJl65ncn6sHvA-Knfya8F_RShB9nfSEN3-iceISKemlmfyB6esspk09eYdY8bo77Lz/pubhtml?gid=1405607145&single=true (sólo necesito guardar el valor de estimación del fondo A, todos los días)…

      En este otro link obtengo el valor real, con el cual compararé la estimación (tienen dos días de diferencia, por eso necesito almacenar el dato del párrafo anterior): https://www.spensiones.cl/apps/valoresCuotaFondo/vcfAFP.php

      Me imagino que debe ser algo fácil de hacer y que sólo estoy algo perdida.
      Les agradezco desde ya las ideas.
      Saludos

    • sfnavarrete
      Espectador

        Hola Tamara, espero que te encuentres bien, te sugiero que tal vez obtengas los datos así:

        • Obtener datos desde la web, copias el link y luego ya en la pantalla donde se escoge las tablas vas a tener un botón que dice: Add Table Using Examples.
          (Si tal vez no encuentras los datos que necesitas en la tablas que Power BI lo interpreta puedes ir a la opción de Add Table Using Example)

         

         

         

         

        Luego en cada columna escoges los campos que necesites, yo escogí como modo de ejemplo F. Estimación y la Estimación (Fondo A). Escribes los dos o tres datos y Power BI lo interpreta (para las dos columnas haces lo mismo)

         

         

        Luego vas a ver que tienes una custom table.

         

        Espero que sea lo que estabas buscando.

        Cualquier novedad no dudes en escribirnos.

        Saludos,
        Santiago

        Tam
        Espectador

          Muchas gracias por tu respuesta Santiago!! … Creo que no me expresé bien. Mi problema es que esos datos se actualizan diariamente y al actualizarse en PBI se borra el dato del día anterior y ese es el que quiero almacenar con su fecha. ¿Sabrás cómo hacer eso?

          sfnavarrete
          Espectador

            Tam Tranquila yo creo que lo entendí mal. Estoy entendiendo y quieres que Power BI se comporte cómo una base de datos para almacenar los datos cada día verdad ?
            No se si me equivoco pero en general Power BI no se comporta como un gestor de base de datos, pero seguro habrá como realizarlo ya voy a buscar en Internet un poco de material.

            Saludos,
            Santiago

            dlom
            Participante

              Hola Tam :raised_hands:t2:
              Es correcto lo que dice Santiago … Power BI no tiene la funcionalidad de almacenar valores con este comportamiento.

              En este caso debes de buscar la manera de almacenar los valores diarios en algo como un “Data warehouse”, o base de datos.

              La manera más sencilla sería ir almacenando el valor en una hoja de Excel por ejemplo, o de Google Sheets, por día. Sin embargo sería un trabajo manual, diario.

              En BI ELITE hay un video donde puede realizar algo parecido a esto utilizando un comando hacia la base de datos SQL. Para serte muy sincero, es un desarrollo muy técnico, que requieren de conocimientos de SQL, además de un usuario con los permisos adecuados hacia la base de datos. Te dejo el video en caso de que estés interesada.

              sfnavarrete
              Espectador

                Hola Tamara, encontré una manera que se podría almacenar los datos en Power BI pero requiere de realizar ciertos pasos, que te podrían tomar más o menos un minuto cada día de tu parte para el almacenamiento.

                Lo que se puede hacer en desde Power Query con un poco de programación en Lenguaje M.

                Antes de los pasos que te voy a detallar debes duplicar (clic derecho y duplicar) a tu DataSet y le podrías renombrar “Historico”

                Ya con esto, esto son los pasos a seguir:

                Día 1. (donde se encuentra los datos en mi caso lo tengo en excel)

                Power Query: Tabla DataSet

                Pasos:

                1. A tu DataSet lo copiamos (como esta en las imagenes)

                1. Clic en Enter Data

                2.1 Control + V

                 

                 

                2.2 Clic en botón OK, y vamos a ver que se nos creo una tabla.

                2.3 Clic en: Advanced Editor

                2.4 Copiar el Código (tu código que te saldrá a ti, yo voy a dejar como me salio a mi)

                let
                Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUNzTQNzIwMlDSUTLQMVSK1YEIGiIEjSGCRiiCpkqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Fecha = _t, Valor = _t]),
                #"Changed Type" = Table.TransformColumnTypes(Source,{{"Fecha", type date}, {"Valor", type number}})
                in
                #"Changed Type"
                

                2.5 Clic en la Tabla: Historico y vamos al Editor Avanzado y copiamos el código

                 

                2.6 Eliminar la tabla creada (Table)

                1. En esta parte debemos modificar el código M de nuestra tabla: DataSet ( igual en Editor Avanzado)
                   let
                       Source = Excel.Workbook(File.Contents("C:\Users\Laura Cordova\Desktop\Alcenamiento.xlsx"), null, true),
                       Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
                       #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
                       #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Fecha", type date}, {"Valor", Int64.Type}}),
                       NewData = Table.TransformColumnTypes(#"Promoted Headers",{{"Fecha", type date},{"Valor", Int64.Type }}),
                       TablaUnion = Table.NestedJoin(Historico,{"Fecha"},NewData,{"Fecha"},"NewColumn",JoinKind.RightAnti),
                        Combined = if Table.IsEmpty(TablaUnion) then Historico else Table.Combine({Historico, TablaUnion[NewColumn]{0}}),
                       #"Changed Type1" = Table.TransformColumnTypes(Combined,{{"Valor", type number}})
                      
                   in
                       #"Changed Type1"
                  

                Esto es lo que deberías hacer la primera vez.

                Día 2.

                Click en

                y vas a ver en la tabla de DataSet tienes la unión de la tabla Historico con los nuevos datos en la tabla DataSet

                Y aquí solo debemos hacer los siguientes pasos:

                1. Copiar la tabla completa
                2. Click en Especificar datos y Control + V
                3. Luego click en Editor Avanzado y copiar código

                   

                4. Pegar código en el Editor Avanzado de la tabla Hitorico

                1. Eliminar table.

                  Espero que te ayude, esto te puede ayudar en el caso que si o si quisieras tener a Power BI como un medio para almacenar datos.

                Saludos,
                Santiago

                dlom
                Participante

                  Interesante desarrollo Santiago, gracias por compartirlo :raised_hands:t2:
                  Porfa Tam, coméntanos cómo te fue con este tema, y si alguna opción sirve para tu caso de uso.

                  Tam
                  Espectador

                    Millones de gracias!

                  Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
                  • El debate ‘Almacenar data obtenida desde la web’ está cerrado y no admite más respuestas.