![Usar parámetros en Power Query](https://rvso.com/image/1520081/Usar%20par%C3%A1metros%20en%20Power%20Query.png)
Ayúdenme a descubrir cómo parametrizar una Power Query.
He creado una consulta PowerQuery que consulta un servicio web en busca de ciertos datos y los manipula de la manera correcta. Digamos que consulto un sistema de gestión de tareas para mis tareas de hoy. Una consulta puede verse así:
Web.Contents("http://intranet/tasks?assignee=John", [Content=Text.ToBinary("")]),
Funciona bien, pero quiero compartir este libro con esta consulta con mis colegas para que puedan usarlo para sus propias tareas.
Web.Contents("http://intranet/tasks?assignee={INPUT HERE}", [Content=Text.ToBinary("")]),
Idealmente, quiero un parámetro en algún lugar llamado "Asignado" (en una celda de un libro, por ejemplo). Quiero que un usuario de este libro pueda ingresar a su asignado al que desea realizar la consulta, por ejemplo, Peter, de modo que cuando actualice los datos, la consulta use su parámetro de esta manera.
Web.Contents("http://intranet/tasks?assignee=Peter", [Content=Text.ToBinary("")]),
No me gustaría que abrieran el editor de PowerQuery y editaran el código de consulta porque nuestros usuarios tendrán mucho miedo de hacerlo y probablemente cometerán errores. Creo que una celda en el libro de trabajo para seleccionar al asignado es el enfoque más útil.
es posible? ¿Si es así, cómo?
Gracias
Respuesta1
Encontré esta solución en Internet, que es exactamente lo que estaba buscando.
Cree una nueva consulta, abra el editor avanzado y pegue el siguiente código:
let GetValue=(rangeName) =>
let
name = Excel.CurrentWorkbook(){[Name=rangeName]}[Content],
value = name{0}[Column1]
in
value
in GetValue
Guárdelo y ahora tendrá una función de consulta que puede usar en otra consulta como esa:
GetValue("Password")
Lo que hará será buscar un rango llamado "Contraseña" en el libro y tomar el valor de la primera celda de ese rango.
Respuesta2
Puede utilizar el Query
registro para pasar parámetros. Si el valor de la celda está almacenado en el paso anterior Name
, puede agregar un nuevo paso con el botón fx en la barra de fórmulas y agregar la siguiente fórmula:
= Web.Contents("http://intranet/tasks", [Content=Text.ToBinary(""), Query=[assignee = Name]])
Si tienen niveles de privacidad habilitados, verán un mensaje de nivel de privacidad. Pueden optar por asignar niveles de privacidad adecuados (tal vez ambos organizacionales en este caso) o pueden desactivar los niveles de privacidad en el cuadro de diálogo Opciones.