POWER QUERY Traducido Eva Ballester
Qué es Power Query? Valor de los datos Expresión let Función personalizada Syntax Sugar
Cada tipo de valor está asociado a una sintaxis literal, un conjunto La expresión let se utiliza para capturar el valor de un cálculo Ejemplo de entradas de función personalizadas: › Syntax Sugar es esencialmente una abreviatura sintáctica
“Un IDE para el desarrollo de M“ de valores de ese tipo, un conjunto de operadores definidos por intermedio en una variable con nombre. Estas variables con (x, y) => [Link](x) + [Link](y) para declarar funciones que no son de tipo, utilizando un único
encima de ese conjunto de valores, y un tipo interno atribuido a nombre son locales en el ámbito de la expresión 'let'. La parámetro formal. Por lo tanto, las siguientes notaciones son
los valores recién creados. construcción del término es de la siguiente forma: semánticamente equivalentes:
Componentes › Null – null let
(x) =>
let let
› Lógico – verdadero, falso name_of_variable = <expression>, out = [Link](x) + Source = ...,
› Cinta de consultas – una cinta de consultas que contiene la › Número – 1, 2, 3, ... returnVariable = <function>(nameOfVariable) addColumn = [Link](Source, „NewName“, each [field1] + 1)
[Link]([Link]([Link]())) in
configuración y las características precompilados por la propia Power Query › Tiempo – #time(HH,MM,SS) in
se reescribe en el lenguaje M para comodidad del usuario. in addColumn
› Fecha – #date(yyyy,mm,ss) returnVariable out ------------------------------------------------------------------------------------------------------------------------------------------------------------------
› Consultas – simplemente una expresión M con nombre. Las consultas se › DateTime – #datetime(yyyy,mm,dd,HH,MM,SS) let
pueden mover a grupos Cuando se evalúa, siempre se aplica lo siguiente: Los argumentos de entrada a las funciones son de dos tipos:
› Primitivo – un valor primitivo es un valor de una sola parte, como un
› DateTimeZone – Source = ...,
#datetimezone(yyyy,mm,dd,HH,MM,SS, 9,00) › Las expresiones en variables definen un nuevo rango que › Requerido – Todos los argumentos comúnmente escritos en (). add1ToField1 = (_) => [field1] + 1,
número, lógico, fecha, texto o null. Se puede utilizar un valor nulo para
contiene identificadores de la producción de la lista de variables y Sin estos argumentos, no se puede llamar a la función. addColumn(Source,“NewName“,add1ToField1)
indicar la ausencia de datos. › Duración – #duration(DD,HH,MM,SS)
› Opcional – tal parámetro puede o no funcionar para entrar. in
› Lista – la lista es una secuencia ordenada de valores. M soporta listas › Texto – “texto“ deben estar presentes cuando se evalúa los términos dentro de
interminables. Las listas definen el carácter “{“ y “}“ indican el principio y el una lista de variables. Las expresiones en la lista de variables son Marque el parámetro como opcional colocando el texto antes del La segunda pieza del Syntax Sugar es que los corchetes desnudos son las
› Binario – #binary(“link“)
final de la lista. nombre del argumento “Optional“. Por ejemplo (optional x). Si abreviaturas para el acceso de campo de un registro denominado '_'.
› Lista – {1, 2, 3} que pueden hacer referencia entre sí
› Registro – un registro es un conjunto de campos, donde el campo es un
› Registro – [ A = 1, B = 2 ] › Todas las variables deben evaluarse antes de que se evalúe el no se produce el cumplimiento de un argumento opcional, así
par de los cuales forman el nombre y el valor. El nombre es un valor de
texto que se encuentra en el registro de campo único. › Tabla – #table({columns},{{first row contenct},{}…})* término let. sea el mismo para fines de cálculo, pero su valor será null. Los Plegado de Consultas
› Tabla – una tabla es un conjunto de valores organizados en columnas y › Función – (x) => x + 1 › Si las expresiones en variables no están disponibles, no se argumentos opcionales deben venir después de los argumentos
filas. La tabla puede ser operada como si fuera una lista de registros, o evaluará. requeridos Capacidad para traducir la consulta la lenguaje de origen. En
› Tipo – type { number }, type table [ A = any, B = text ]
como si fuera un registro de listas. La tabla [Campo]' (sintaxis de referencia * El índice de la primera fila de la tabla es el mismo que para los registros de la hoja 0 › Los errores que se producen durante la evaluación de consultas concreto, los pasos de Power Query se componen en una sola
de campo para registros) devuelve una lista de valores en ese campo. Los argumentos se pueden anotar con 'as <type>' para indicar el
se propagan como un error a otras consultas vinculadas. consulta, que se implementa en el origen de datos. Los
tipo necesario del argumento. La función producirá un error de
Operadores
› Función – una función es un valor que cuando se llama mediante
orígenes de datos que admiten el plegado de consultas son
argumentos crea un nuevo valor. Las funciones se escriben enumerando la tipo si se llama con argumentos del tipo incorrecto. Las funciones
función argumentos entre paréntesis, seguido del símbolo de transición
“>“ y la expresión que define la función. Esta expresión generalmente se Hay varios operadores dentro del lenguaje M, pero no todos los
Condicionales también pueden tener un retorno anotado de ellas. Esta
recursos que admiten el concepto de lenguajes de consulta
como orígenes de base de datos relacional.
anotación se proporciona como:
refiere a argumentos por Nombre. También hay funciones sin argumentos. operadores se pueden utilizar para todos los tipos de valores. Esto significa que, por ejemplo, un archivo CSV o XML como un
› Parámetro – el parámetro almacena un valor que se puede utilizar para Incluso en Power Query, hay una expresión “If“, que, en función (x as number, y as text) as logical => <expression>
› Operadores primarios archivo plano con datos no serán compatibles con el plegado
las transformaciones. Además del nombre del parámetro y el valor que de la condición insertada, decide si el resultado será una El retorno de las funciones es muy diferente. La salida puede ser
› (x) – Expresión entre paréntesis de consultas. Por lo tanto, la transformación no tiene que
almacena, también tiene otras propiedades que proporcionan metadatos. expresión true o una expresión falsa. una hoja, una tabla, un valor, pero también otras funciones. Esto
La ventaja innegable del parámetro es que se puede cambiar desde el › x[i] – Referencia de campo. Valor devuelto del registro, lista tener lugar hasta después de cargar los datos, pero es posible
entorno de Power BI Service sin necesidad de intervención directa en el de valores de la tabla. Forma sintáctica de expresión If: significa que una función puede producir otra función. Tal preparar los datos inmediatamente. Desafortunadamente, no
conjunto de datos. La sintaxis del parámetro es como consulta regular que › x{i} – Acceso a los artículos. Devolver el valor de la lista, if <predicate> then < true-expression > else < false-expression > función se escribe como sigue: todas las fuentes admiten esta característica.
es especial es que los metadatos siguen un formato específico.
registro de la tabla. “else es necesario en la expresión condicional de M“ let first = (x)=> () => let out = {1..x} in out in first › Funciones válidas
› Barra de fórmulas – muestra el paso actual y le permite editarlo. Para › Eliminar, cambiar el nombre de las columnas
“Colocar el “?“ Carácter después de que el operador devuelve Entrada de condición: En la evaluación de funciones, se mantiene que: › Filtrado de filas
poder ver la barra de fórmulas, tiene que estar habilitado en el menú de la
cinta de opciones dentro de la categoría Ver. null si el índice no está en la lista “ If x > 2 then 1 else 0 › Agrupación, resumen, pivote y despivo
› x(…) – Invocación de funciones If [Month] > [Fiscal_Month] then true else false › Los errores causados por la evaluación de expresiones en una › Combinar y extraer datos de consultas
› Configuración de Consultas – configuración que incluye la capacidad
› {1 .. 10} – Creación automática de la lista del 1 al 10 lista de expresiones o en una expresión de función se propagarán › Conectar consultas basadas en el mismo origen de datos
de editar el nombre y la descripción de la consulta. También contiene una La expresión if es el único condicional en M. Si tiene varios
vista de todos los pasos aplicados actualmente. Los pasos aplicados son las › … – No implementado aún más como un error o como un valor “Error“ › Añadir columnas personalizadas con lógica simple
predicados para probar, debe encadenar juntos como: › El número de argumentos creados a partir de la lista de › Funciones no válidas
variables definidas en una expresión let y están representados por nombres › Operadores matemáticos – +, -, *, /
variables. if <predicate> argumentos debe ser compatible con el argumento formal de la › Combinar consultas basadas en diferentes orígenes de datos
› Operadores comparativos then < true-expression > › Adición de columnas con índice
› Previsualización de datos – componente que muestra una vista previa función, de lo contrario se producirá un error con el código de
de los datos en el paso de transformación seleccionado actualmente
› > , >= – Mayor que, mayor o igual que else if <predicate> › Cambiar el tipo de datos de una columna
› < , <= – Menor que, menor o igual que motivo “[Link]“
› Barra de estado – Esta es la barra situada en la parte inferior de la then < false-true-expression >
pantalla. La fila contiene información sobre el estado aproximado de las filas,
columnas y Hora de la Última revisión. Además de esta Información hay
› = , <> – es igual, no es igual. Equal devuelve true incluso para
null = null
else < false-false-expression >
Funciones recursivas DEMO
información de origen para las columnas. Aquí es posible cambiar el Perfiles › Operadores lógicos Al evaluar las condiciones, se aplica lo siguiente:
De 1000 filas para todo el conjunto de datos
› Los operadores se pueden combinar. Por ejemplo, como
› and – conjunción › Si el valor creado mediante la evaluación de la condición if no Para las funciones recursivas es necesario utilizar el carácter sigue:
› or – disyunción es un valor lógico, entonces se genera un error con el código “@“ que hace referencia a la función dentro de su cálculo. Una
› LastStep[Year]{[ID]}
Funciones en Power Query › not – negación lógica de motivo “[Link]„ función recursiva típica es el factorial. La función para el
*Esto significa que usted puede obtener el valor de otro paso
› Tipo de operadores › Una expresión verdadera se evalúa solo si la condición if se factorial se puede escribir de la siguiente manera:
basado en el índice de la columna
El conocimiento de las funciones es su mejor ayudante cuando › as – Es compatible con tipo o error primitivo que acepta valores NULL evalúa como true. De lo contrario, se evalúara expresión falsa. let
se trabaja con un lenguaje funcional como M. Las funciones se › is – pruebe si es compatible con un tipo primitivo que acepta valores NULL › Si las expresiones en variables no están disponibles, no deben Factorial = (x) => › La producción de una dimensión DateKey es la iguiente:
llaman entre paréntesis. › Metadatos - la palabra meta asigna metadatos a un valor. evaluarse if x = 0 then 1 else x * @Factorial(x - 1), #table(
› Compartido – es una palabra clave que carga todas las Ejemplo de asignación de metadatos a la variable x: › El error que se produjo durante la evaluación de la condición Result = Factorial(3) type table [Date=date, Day=[Link], Month=[Link],
funciones (incluidas la ayuda y el ejemplo) y los “x meta y“ / “x meta [name = x, value = 123,…]“ se extenderá aún más en forma de un error de toda la consulta in MonthName=text, Year=[Link],Quarter=[Link]],
enumeradores en el conjunto de resultados. La llamada de la Dentro de Power Query, se aplica la prioridad de los operadores, por lo que o “Error“ valor en el registro. Result // = 6 [Link](
función se realiza dentro de la consulta vacía usando por por ejemplo “X + Y * Z“ se evaluará como “X + (Y * Z)“ [Link](start_date, (start_date-endd_ate),
= # shared La expresión try... otherwise #duration(1, 0, 0 ,0)),
Comentarios Each each {_, [Link](_), [Link](_),
[Link](_), [Link](_), [Link](_)}))
Las funciones se pueden dividir en dos categorías: Capturar errores es posible, por ejemplo, mediante la Se puede llamar a funciones en argumentos específicos. Sin
El lenguaje M admite dos versiones de comentarios:
› Prefabricado – Ejemplo: [Link]() expresión try. Se intenta evaluar la expresión después de la embargo, si la función necesita ejecutarse para cada registro,
› Custom – son funciones que el propio usuario prepara para
› Comentarios de una sola línea – puede ser creado por //
antes de código
palabra try. Si se produce un error durante la evaluación, se una hoja completa o una columna completa de una tabla, es Palabras Clave
el modelo mediante la extensión de la notación por “()=>“, aplica una expresión después de la palabra otherwise necesario anexar la palabra each al código. Como su nombre
› Acceso directo: CTRL + ´ and, as, each, else, error, false, if, in, is, let, meta, not,
donde los argumentos que serán necesarios para la Ejemplo de sintaxis: indica, para cada contexto record, aplica el procedimiento
evaluación de la función se pueden colocar entre paréntesis. › Comentarios multilínea ( puede ser creado por /* antes de detrás de él. ¡Each nunca es necesario! Simplemente facilita la otherwise, or, section, shared, then, true, try, type, #binary,
código y */ después del código try [Link]([textDate]) otherwise null
Cuando se utilizan varios argumentos, es necesario definición de una función en línea para funciones que #date, #datetime, #datetimezone, #duration, #infinity, #nan,
separarlos mediante un delimitador. › Acceso directo : ALT + SHIFT + A requieren una función como argumento. #sections, #shared, #table, #time
JAK NA POWER BI CHEATSHEET