Documentos de Académico
Documentos de Profesional
Documentos de Cultura
http://amby.net/
anabisbe@amby.net
@ambynet
##SQLSatMadrid
BIG Thanks to SQLSatMadrid Sponsors
##SQLSatMadrid
4 Sponsor Sessions at 11:40
##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
##SQLSatMadrid
EXCEL VS POWER BI
##SQLSatMadrid
Excel vs Power BI
http://amby.net/2016/03/14/serie-ms-office-excel-2016/
##SQLSatMadrid
Excel vs Power BI
##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
##SQLSatMadrid
Excel vs Power BI - interfaz
Vista relaciones
##SQLSatMadrid
Excel vs Power BI - interfaz
Vista Datos
##SQLSatMadrid
¿Excel vs Power BI?
##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?
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
##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
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
##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
Ver resultados
##SQLSatMadrid
M – Control de errores - División
Crear función
##SQLSatMadrid
M – Control de errores - División
##SQLSatMadrid
DAX – ¿Control de calidad y tipos de datos?
Funciones DAX
##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
##SQLSatMadrid
BI de tiempos – DAX
Períodos anteriores y posteriores
##SQLSatMadrid
Consulta – BI de tiempos
M
##SQLSatMadrid
Consulta BI de Tiempo
##SQLSatMadrid
Consulta BI de Tiempo - ¡¡¡ Ayuda !!!
Devuelve funciones y
enumeradores del lenguaje M
Convertir a tabla
Resultado
##SQLSatMadrid
Consulta BI de Tiempo
Resultado
##SQLSatMadrid
Consulta BI de Tiempo
##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
##SQLSatMadrid
Variables en DAX
##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
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?
¡¡ 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