Está en la página 1de 62

Para crear modelos analíticos:

¿Power Query o Power Pivot?


¿M o DAX?

Ana María Bisbé York


Consultora BI

http://amby.net/
anabisbe@amby.net
@ambynet

##SQLSatMadrid
BIG Thanks to SQLSatMadrid Sponsors

##SQLSatMadrid
4 Sponsor Sessions at 11:40

Don’t miss them, they might be getting


distributing some awesome prizes!
 HPE
 SolidQ
 KABEL
 TSD Consulting
Also BIG Raffle prizes at the end of the
event provided by:
Plainconcepts, SolidQ, Kabel, TSD
Consulting, Pyramid Analytics & sqlpass.es

##SQLSatMadrid
Agenda
 Modelos tabulares con Microsoft
 Excel Power BI vs Power BI Desktop
 Power Query vs Power Pivot
 M vs DAX
 Combinar consultas vs RELATED()
 Agrupar columnas vs RELATEDTABLE()
 Control de errores
 Columnas calculadas vs transformaciones de consulta
 BI de tiempos
 Semanas
 Columnas vs Medidas
 Granularidad
 Analizar en Excel desde PowerBI

##SQLSatMadrid
4 |
Consulta y Modelos tabulares

 Consulta para acceder a datos


 Lenguaje M
 Modelos tabulares
 Basados en tablas y sus relaciones
 Lenguaje DAX
 Data Analysis Expressions
 Entornos tabulares Microsoft
 SQL Server Analysis Services Tabular
 Power Pivot
 Power BI

##SQLSatMadrid
EXCEL VS POWER BI

##SQLSatMadrid
Excel vs Power BI

 Excel - herramienta madura de Microsoft con


muchas funcionalidades además de Power BI
MS Excel 2016

• Mejoras en tabla dinámica


• Nuevos gráficos
• Hojas de pronóstico
• Nuevas funciones Excel y DAX
• Obtener y transformar vs Power Query
• Mejoras en Power Pivot
• Power View
• Mapas 3D vs Power Map
• Mejoras en colaboración
• Excel 2016 y PowerBI
• Excel 2016 para Office 365

 http://amby.net/2016/03/14/serie-ms-office-excel-2016/

##SQLSatMadrid
Excel vs Power BI

 Power BI - Mucho más que PowerBI Desktop

##SQLSatMadrid
Excel vs Power BI
 Power BI acaba de cumplir un año

 https://powerbi.microsoft.com/es-es/blog/happy-first-birthday-to-power-bi/

##SQLSatMadrid
Excel vs Power BI - interfaz

 Power BI Query Designer vs Power Query


 Apenas se diferencian estéticamente

##SQLSatMadrid
Excel vs Power BI - interfaz

 Vista relaciones

##SQLSatMadrid
Excel vs Power BI - interfaz

 Vista Datos

##SQLSatMadrid
¿Excel vs Power BI?

 Lo mejor de ambos mundos


 Excel como herramienta de uso masivo sigue siendo
imprescindible
 También para consumir Power BI
 Power BI es y será en el futuro la herramienta más
utilizada, con independencia del origen de datos para
crear modelos, publicar, compartir y consumir
modelos analíticos
 Se hermana con Excel, como origen y destino

##SQLSatMadrid
POWER QUERY VS
POWER PIVOT
##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
Al reutilizar la conexión, sí Al reutilizar la conexión, no
Identificación de relaciones
importa las relaciones entre importa las relaciones entre
entre tablas en servidor SQL
tablas existentes en la base tablas existentes en la base
Server
de datos de origen de datos de origen
Importa los datos, creando
Extrae un subconjunto para una instantánea entre lo que
Extracción de datos facilitar vista preliminar y hay físicamente en Excel y lo
realizar las transformaciones que hay en el servidor en el
momento de la importación
En Excel, al servidor de
En el servidor que
origen sólo se accede
Ejecución de corresponde al origen de
durante la importación y el
transformaciones datos, siempre que sea
procesado o recarga de
posible 
datos

##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
Durante la creación de la Al tener todos los datos
consulta al no tener almacenados en
Uso de memoria
cargados todos los datos, no memoria, puede provocar
es un problema problemas de rendimiento
Consumo del resultado No hay paso directo de PQ a
Sí, nativo
desde tabla dinámica (TD) TD
Consumo del resultado Sí, es origen de datos para
No
desde Power View (PV) PV
Consumo del resultado Sí, es origen de datos para
No
desde Power Map (PM) PM
Lenguaje de expresiones
Lenguaje para Lenguaje M para extracción
DAX para crear columnas
transformaciones y transformación
calculadas y medidas

##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
No existen opciones de
menú para transformaciones.
Cubren todas las
Opciones de menú para Para crear columnas
transformaciones básicas
transformaciones calculadas y/o medidas hay
necesarias
que escribir expresiones
DAX
Opciones de menú para
Si, existen Si, existen
propiedades
No se puede evitar, hay que
No hay que aprender M,
entender DAX, que aunque
conviene entenderlo y
puede recordar a Excel y/o al
Curva de aprendizaje trabajar, en algún caso,
mundo relacional, es
desde el editor avanzado de
diferente y puede costar
código
entender su comportamiento

##SQLSatMadrid
Power Query vs Power Pivot
Aspecto / Herramienta Power Query Power Pivot
La consulta en M, puede ser
No es posible “copiar” y
copiada y pegada en otro
“pegar” un modelo tabular
libro Excel, ejecuta,
creado en PowerPivot, lo
Reusabilidad modificada a mano, por
que sí se puede hacer es
ejemplo, es muy sencillo
consultar, con DAX, uno
actualizar la ruta de un
existente
origen de datos
Resultado Consulta Modelo tabular
Definir la consulta para Su funcionalidad es crear el
extraer datos, transformarlos Modelo tabular que será
Funcionalidad y cargarlos en hojas Excel consumido, entre otros, por
y/o Modelos de datos (Power tablas y gráficos dinámicos,
BI Designer) PV y PM

##SQLSatMadrid
¿Power Query vs Power Pivot?

 Lo mejor de ambos mundos


 Power Query para acceder, limpiar, y transformar
datos que llegan desde todo tipo de origen
 Lenguaje M
 Power Pivot para modelar, clasificar columnas por
categorías, crear jerarquías, sinónimos, crear
cálculos
 Lenguaje DAX

 http://amby.net/2015/03/04/serie-power-query-vs-power-pivot/

##SQLSatMadrid
Consulta vs Modelo

 Escenarios
 Normalizar o De-normalizar
 Funcionalidad de los campos en el modelo
 Jerarquías de usuario
 Obtención de agregados
 Detalles específicos dentro de los agregados
 Control de errores
 División por cero
 Errores en conversión de datos
 BI de tiempos
 Semanas
##SQLSatMadrid
Escenario: De-normalizar

M - COMBINAR VS
DAX - RELATED()
##SQLSatMadrid
Escenario

 Los campos Subcategoría y Categoría sólo


sirven para describir el Producto
 El objetivo es analizar desde jerarquía
 Obtención de detalles por niveles

##SQLSatMadrid
Combinar M vs RELATED() DAX

 Combinar

 RELATED()

##SQLSatMadrid
Escenario: Agregados

M - AGRUPAR VS
DAX - RELATEDTABLE()
##SQLSatMadrid
Escenario

 Escenario
 La columna CodCliente se repite tantas veces como
haya comprado cada uno de los clientes
 Objetivos para cada cliente
 ¿Cuántas veces ha comprado?
 Agregado
 ¿Cuánto ha comprado?
 Agregado
 ¿Por cuánto compró la primera y última vez?
 Detalle

##SQLSatMadrid
Agregados y Detalles

 Consulta

 DAX

##SQLSatMadrid
M – Agrupar filas - Agregados

 Ordenar previamente por columna Fechas

 Agrupar
 Definir granularidad del grupo
 Seleccionar CodCliente
 Columnas agrupadas
 CantidadVeces – conteo de filas
 Ingresos – Suma de las Ventas
 DetalleVentas – todos las filas

##SQLSatMadrid
M – Agrupar filas - Agregados

 Ver Resultados

 Ver detalles

##SQLSatMadrid
M – Agrupar filas - Detalles

 Agregar dos líneas con el código para obtener el


monto de la primera y última venta

##SQLSatMadrid
M – Agrupar filas – Agregados y detalles

 Ver Resultado

 Ver detalles

##SQLSatMadrid
DAX – Agregar con RELATEDTABLE()

 RELATEDTABLE()
 Sigue la relación 1:M y devuelve todas las filas que
se relacionan con la fila actual

 Ver datos

##SQLSatMadrid
Escenario: Control de errores

M – FUNCIONES VARIAS VS
DAX – FUNCIONES VARIAS 
##SQLSatMadrid
Control de errores

 Escenarios
 Error al convertir tipo de datos
 Error al realizar operaciones con “números”
 División
 Posibles soluciones
 Eliminar toda la fila, ¿cómo?  No, no, cuidadín
 Curarse en salud preguntando por el error y
sustituyendo… antes de 
 Obtener información detallada del error
 Devolver el dato al origen para su corrección

##SQLSatMadrid
M – Control de errores - Conversión

 Utilizar TRY…0

 Ver resultado

##SQLSatMadrid
M – Control de errores - División
 División por cero y otros errores
 Columna calculada en la consulta
 Resultados
 Problemas
 Si el numerador o denominador no es
número
 Devuelve Error
 Si el numerador o denominador es
NULL
 Devuelve NULL
 Si el denominador es cero:
 Infinity si el numerador es positivo
 -Infinity si el numerador es negativo
 0/0 devuelve NaN

##SQLSatMadrid
M – Control de errores - División

 Uso de función TRY (código M)

 Resultado, registro con detalles


 Expandir y ver detalles

 Resultado, registro con detalles


##SQLSatMadrid
M – Control de errores - División

 Utilizar función TRY con sustitución

 Ver resultados

##SQLSatMadrid
M – Control de errores - División

 Crear función - comprobar registros con errores


 Nueva consulta en blanco

 Crear función

##SQLSatMadrid
M – Control de errores - División

 Ver función creada

 Comprobar calidad datos

##SQLSatMadrid
DAX – ¿Control de calidad y tipos de datos?

 Para DAX ya es tarde 


 Las funciones de control de errores en DAX son
lentas,
 Muy muy dañinas para el rendimiento 
 En el momento de modelado hay que saber ya de
qué tipo es nuestro dato y garantizar su limpieza
 Columna ID, columna de relación
 No duplicados
 Tipo correcto
 Control de calidad de datos
 Consulta, consulta y otra vez consulta 
 Código M - TRY
##SQLSatMadrid
Control de errores en DAX

 Funciones DAX

 DIVIDE(), optimizado por el motor

##SQLSatMadrid
Escenario: BI de tiempo - Semanas

M – FUNCIONES NATIVAS VS
DAX – NO EXISTEN FUNCIONES 

##SQLSatMadrid
Escenarios

 BI de tiempos
 Lo mejor de ambos mundos
 Crear las columnas desde Power Query, las necesarias
 Disfrutar de las funciones DAX de BI de tiempo

 ¿Y qué hay para semanas?

##SQLSatMadrid
BI de tiempos – DAX
Períodos anteriores y posteriores

##SQLSatMadrid
Consulta – BI de tiempos

 Transformaciones disponibles para Semanas

 M

##SQLSatMadrid
Consulta BI de Tiempo

 Devuelve Verdadero o Falso


 ¿Semana pasada?
 ¿Últimas n semanas?
 ¿Semana actual?
 ¿Próxima semana?
 Devuelve Fecha
 Suma y Resta semanas
 ¿Hay funciones para estos escenarios?
 Sí, hay funciones en lenguaje M nativo 

##SQLSatMadrid
Consulta BI de Tiempo - ¡¡¡ Ayuda !!!

 Nueva consulta en blanco


 Función #shared

 Devuelve funciones y
enumeradores del lenguaje M
 Convertir a tabla
 Resultado

##SQLSatMadrid
Consulta BI de Tiempo

 Obtener ayuda de la referencia del lenguaje


 Filtrar por “Week”

 Resultado

 Crear nuevas consultas (funciones)

##SQLSatMadrid
Consulta BI de Tiempo

 Crear las funciones necesarias


 Dar respuesta a requerimientos

 Crear columnas que llamen a las funciones

##SQLSatMadrid
Consulta BI de Tiempo

 Resultado Final

##SQLSatMadrid
¿Olvidar DAX?
De eso nada !!! DAX es nuestro mejor aliado a la hora de modelar

DAX – FUNCIONES 

##SQLSatMadrid
Escenarios

 Jerarquías no balanceadas: padre-hijo


 Identificación y uso de patrones
 Filtros avanzados
 Crear tablas, columnas calculadas y medidas

##SQLSatMadrid
Variables en DAX

 Muy útil y poderoso


 Ventajas
 Legibilidad del código
 Menos repeticiones
 La variable garantiza que la evaluación de la
expresión ocurre una sola vez
 Todos los tipos de datos están soportados en las
variables

##SQLSatMadrid
Uso de Columnas calculadas vs Medidas

 Columnas
 Filtros
 Segmentadores
 Es necesario tener el dato visible
 Análisis ABC o de Pareto
 Medidas
 Cálculos para implementar lógica
 BI de tiempos
 Cálculos de Porcentajes
 Ratios
 Agregaciones complejas

##SQLSatMadrid
Cálculos DAX para modelos tabulares

 Columnas calculadas ¡¡ evitar las innecesarias !!


 Estas dos son innecesarias, crear medidas

 Medida o campo calculado

 Tabla calculada

##SQLSatMadrid
DAX columnas vs medidas
Analizar en Excel
 Contenido modelo Power BI vs
Excel
 Replica exactamente el modelo
 Al panel valores sólo se pueden
agregar las Medidas
 No reconoce las columnas
numéricas como valores

##SQLSatMadrid
¿Preguntas?

 Ana María Bisbé York


 anabisbe@amby.net
 http://amby.net/
 @ambynet

 ¡¡ Gracias !!

##SQLSatMadrid
Recursos Consultas y M
 Libro
 https://www.amazon.com/gp/product/1615
470395/ref=as_li_tl?ie=UTF8&camp=1789
&creative=390957&creativeASIN=161547
0395&linkCode=as2&tag=powe022-
20&linkId=QHM62FCPUOXVRTIJ
 Comparativas entre herramientas
 https://www.youtube.com/watch?v=clIjG9q
3iTk
 http://amby.net/2015/03/04/serie-power-
query-vs-power-pivot/
 Power Query y lenguaje M
 http://radacad.com/tutorial-introduction-to-
power-query
 http://radacad.com/power-query-formula-
language-m

##SQLSatMadrid
Recursos Consultas y M

 Uso de Shared
 http://radacad.com/power-query-library-of-functions-
shared-keyword
 http://radacad.com/how-to-get-list-of-all-functions-
and-invoke-them-in-power-query
 Trabajo con Semanas
 http://radacad.com/grouping-in-power-query-getting-
the-last-item-in-each-group
 Y más…
 https://blog.crossjoin.co.uk/2016/05/15/creating-m-
functions-from-parameterised-queries-in-power-bi/

##SQLSatMadrid
Recursos DAX

 Libro
 http://www.amazon.es/dp/073569
835X/?tag=wwwsqlbicom0f-21
 BI Tiempos
 https://www.sqlbi.com/articles/we
ek-based-time-intelligence-in-
dax/
 Patrones
 http://www.daxpatterns.com/
 http://www.daxpatterns.com/usec
ases/

##SQLSatMadrid
Recursos DAX
 Trabajo con semanas desde DAX
 https://www.sqlbi.com/articles/week-based-time-
intelligence-in-dax/
 Y más…
 https://blog.crossjoin.co.uk/2015/12/15/power-bi-desktop-
sort-by-column-and-dax-calculations-that-use-the-all-
function/
 https://projectbotticelli.com/knowledge/dax-calculated-
columns-vs-measures-video-tutorial
 https://projectbotticelli.com/knowledge/what-is-time-
intelligence-video-tutorial
 https://projectbotticelli.com/knowledge/how-calculate-
hierarchies-dax-video-tutorial-data-analysis-expressions

##SQLSatMadrid
BIG Thanks to SQLSatMadrid Sponsors

##SQLSatMadrid

También podría gustarte