Una función personalizada usa el lenguaje de fórmulaS M, toma un conjunto de valores de entrada y devuelve un único valor de salida. Si tiene la lógica que desea reutilizar muchas veces o aplicar el mismo conjunto de transformaciones a otra consulta o valor, considere la posibilidad de crear una función personalizada y, a continuación, invocar la función donde y cuando la necesite. Hay varias maneras de crear una función personalizada:
- Use la Editor avanzado para agregar su propia instrucción Let y empezar desde cero.
- Use el comando Invocar función personalizada .
- Hay otras formas de crear funciones no analizadas en este tema de ayuda, como crear funciones y agregar como comandos de consulta . Para obtener una discusión detallada, vea Descripción de las funciones Power Query M (docs.com) y Uso de funciones personalizadas (docs.com).
Crear e invocar una función personalizada simple con el Editor avanzado
El siguiente es un ejemplo sencillo de una función personalizada que sigue una tradición de programación de larga duración.
Para crear una consulta en blanco:
Excel Seleccione Datos>obtener datos>de otras consultas en blanco de orígenes>.
Power Query Haga clic con el botón derecho en una ubicación en blanco del panel Consultas de la izquierda y, después, seleccione Nueva consulta>Otros orígenes>en blanco.
En el panel Consultas de la izquierda, haga doble clic en el nombre y cambie el nombre de la nueva consulta en blanco a "HelloWorld".
Seleccione la nueva consulta y, a continuación, seleccione Inicio>Editor avanzado.
Reemplace el código de inicio de la plantilla por el código siguiente:
let
HelloWorld = () => ("Hello World")
in
HelloWorldSeleccione Listo.
Ha cambiado la consulta, "HelloWorld", por una función personalizada. Observe el icono de función
a la izquierda.Para invocar la función, selecciónela y, a continuación, seleccione Invocar en vista previa de datos.
Los resultados de la función se muestran en la vista previa de datos y se agregan al panel Consultas como una consulta con el nombre predeterminado, Función invocada. Es posible que desee cambiarle el nombre por algo más significativo, como "HelloWorldResult".
Seleccione esa consulta y, después, seleccione Cerrar inicio>& Cargar para ver los resultados en una hoja de cálculo.
Resultados
Crear e invocar una función personalizada que tenga un parámetro con el Editor avanzado
En el ejemplo siguiente se muestra cómo pasar un parámetro a una función personalizada para convertir un número decimal en hexadecimal.
Para crear una consulta en blanco:
Excel Seleccione Datos>obtener datos>de otras consultas en blanco de orígenes>.
Power Query Haga clic con el botón derecho en una ubicación en blanco del panel Consultas de la izquierda y, después, seleccione Nueva consulta>Otros orígenes>en blanco.
En el panel Consultas de la izquierda, cambie el nombre de la nueva consulta en blanco a "MyHex".
Seleccione la nueva consulta y, a continuación, seleccione Inicio>Editor avanzado.
Reemplace el código de inicio de la plantilla por el código siguiente:
let
MyHex = (parameter1) => Number.ToText(parameter1,"X")
in
MyHexSeleccione Listo.
Ha cambiado la consulta, "MyHex", por una función personalizada. Observe el icono de función
a la izquierda.Para invocar la función, selecciónela y, a continuación, en Vista previa de datos, escriba un número en el cuadro parámetro1 y seleccione Invocar.
Los resultados de la función se muestran en la vista previa de datos y se agregan al panel Consultas como una consulta con el nombre predeterminado, Función invocada. Es posible que desee cambiarle el nombre por algo más significativo, como "MyHexResult".
Seleccione esa consulta y, después, seleccione Cerrar inicio>& Cargar para ver los resultados en una hoja de cálculo.
Resultados
Agregar una columna invocando una función personalizada
Si ha creado una función con al menos un parámetro, puede invocarla como una función personalizada para crear una nueva columna y un nuevo valor para cada fila de una tabla.
Para abrir una consulta, busque una cargada previamente desde la Editor de Power Query, seleccione una celda de los datos y, a continuación, seleccioneEditarconsulta>. Para obtener más información, vea Crear, editar y cargar una consulta en Excel (Power Query).
Nota En este ejemplo, la consulta necesita al menos una columna de un tipo de datos Número entero .
Cree la función personalizada "MyHex" tal y como se explica en la sección Crear e invocar una función personalizada que tenga un parámetro con el Editor avanzado.
En la consulta, seleccione Agregar funciónpersonalizada invocar columna>. Aparecerá el cuadro de diálogo Invocar función personalizada .
Escriba el nuevo nombre de columna, como "HexConvert", en el cuadro Nuevo nombre de columna .
Seleccione el nombre de una función personalizada predefinida en la lista desplegable Consulta de funciones. En este ejemplo, seleccione "MyHex".
Dado que la función personalizada hace referencia a un parámetro, ahora se muestra el parámetro.
Seleccione una columna de un tipo de datos Número entero como parámetro de la función.
Seleccione Aceptar.
Resultado
Se crea una nueva columna que muestra el valor Hexadecimal de la columna Número entero que especificó como parámetro.
Consulte también
Ayuda de Power Query para Excel
Crear fórmulas de Power Query en Excel
Crear una consulta de parámetros