Está en la página 1de 24

Guía de Ejercitación Intensivo Power BI

Décima Edición
Tabla de Contenidos
Tabla de Contenidos.............................................................................................................................................. 1
Escenario .................................................................................................................................................................. 3
Previo ........................................................................................................................................................................ 3
Extracción, Transformación y carga de datos................................................................................................ 4
1. Extracción de datos Excel ..................................................................................................................... 4
2. Extracción de datos desde una BD para análisis ........................................................................... 4
3. Extracción de Archivos de texto para análisis ................................................................................. 5
4. Extracción de archivos que conforman un conjunto de datos único ...................................... 6
5. Extracción de datos de Producto Geográfico per Cápita desde la Web .................................7
6. Extracción de datos de la UF (Web) .................................................................................................. 8
7. Uso de parámetros en carga y transformación ............................................................................ 10
Modelación ............................................................................................................................................................. 12
1. Conectando el modelo ........................................................................................................................ 12
2. Limpiando visualmente el modelo.................................................................................................... 13
3. Enriqueciendo la metadata de formato .......................................................................................... 13
4. Corrigiendo la agregación por defecto (Summarize) ................................................................. 14
5. Creando Jerarquías ............................................................................................................................... 15
6. Limpiando de tablas innecesarias ..................................................................................................... 15
7. Estudiando el efecto del Cross Filter Direction.............................................................................. 16
8. Columnas Calculadas y Medidas con DAX..................................................................................... 16
Visualización ........................................................................................................................................................... 17
1. Preparación previa para usabilidad y apariencia profesional. .................................................. 17
2. Creación de tablas................................................................................................................................. 17
3. Creación de Gráficos de barra, líneas y tortas. Modificación de interacciones. .................. 18
4. Creación de un mapa ........................................................................................................................... 18
5. Importación de Custom Visuals ......................................................................................................... 19
6. Seguridad a Nivel de Fila (Row Level Security) ............................................................................. 19
7. Controlando las páginas afectadas por un filtro ......................................................................... 20
Servicio Power BI en la nube ............................................................................................................................ 22
1. Publicando hacia la nube ................................................................................................................... 22
2. Asignando usuarios a roles de seguridad ..................................................................................... 24

Página | 2
Escenario
El escenario sobre el cual realizaremos la ejercitación con Power BI es el de una
empresa llamada AdventureWorks, la cual fabrica bicicletas, accesorios y ropa deportiva
para ciclistas. Esta empresa requiere realizar análisis, principalmente de ventas.
Actualmente utilizan solamente Excel para sus reportes, lo que les significa un esfuerzo
considerable de integración de datos cada vez que tienen que emitir reportes, lo que
hacen semanalmente.
Los analistas ya están aburridos del Excel, con su capacidad limitada de generación de
vistas interactivas y de facilitar el descubrimiento de patrones y relaciones interesantes
entre los datos.
La ejercitación está diseñada para que quien la realice tenga la experiencia de
comienzo a fin con Power BI, lo que incluye extracción, transformación, carga,
modelación, creación de cálculos, visualización y distribución de datos para la toma de
decisiones organizacional.
El resultado final es un reporte Power BI a todo color, con visualizaciones interesantes,
publicado en la nube, accesible por el usuario mediante una cuenta grauita.

Previo
Los datos de ejemplo del curso están en la siguiente URL:
http://tiny.cc/1c4b4y

Página | 3
Extracción, Transformación y carga de datos
En esta sección haremos ejercicios cuya finalidad es obtener y preparar datos que
utilizaremos para nuestro posterior modelo de datos en Power BI.

1. Extracción de datos Excel


Este ejercicio considera un archivo Excel con varias hojas. Gran parte de los datos que
utilizaremos serán extraidos desde esta fuente de datos.
a. En Power BI haga click en “Get Data”, y seleccione “Excel”
b. Aparecerá un listado de tablas y de hojas . Seleccione las siguientes tablas:
a. Productos
b. CatProductos
c. SubCatProductos
Presione OK

2. Extracción de datos desde una BD para análisis


Este ejercicio considera una BD Azure SQL Server, cuya localización y credenciales de
acceso serán proporcionadas por el profesor. Algunos de los datos que utilizaremos
serán extraídos desde esta fuente de datos.
c. En Power BI haba click en “Get Data”, y seleccione “Azure SQL Database”
d. Aparecerá una ventana en donde escribir el nombre del servidor y el nombre de la base
de datos. El profesor proveerá el nombre del servidor, mientras que la bd se llama
AdventureWorksDW2014. El modo de conectividad (Data Connectivity Mode) debe
dejarse en “Import”. Haga click en OK.
e. En la siguiente ventana debe ingresar las credenciales que el profesor le proveerá,
fijándose que al lado izquierdo esté seleccionado el menú “Database”. Haga click en
“Connect”
f. Aparecerá un listado de tablas. Seleccione las siguientes:
a. DimDate
b. DimCustomer
c. DimGeography
Presione OK

Página | 4
3. Extracción de Archivos de texto para análisis
Este ejercicio consiste en la carga de datos de distintos archivos de texto, cada uno de
los cuales constituirá una “Query” (consulta) en el Query Editor de consultas de Power
BI.
a. Copie toda la carpeta “textos” dentro de “datos” desde la url al disco de su computador,
recuerde la ruta en donde dejó la carpeta.
b. Revise su configuración regional: Vaya a menú File → Options and Settings → Options
→ Regional Settings (bajo sección CURRENT FILE) y revise el valor fijado. Si dice “English
(United States)”, entonces el editor de queries habrá interpretado la coma decimal como
el separador de miles, y probablemente su paso “Changed Type” muestra las columnas
con cifras monetarias como números enormes. Este parámetro se llama el “Locale”.
c. Cambie el Locale a “Spanish (Chile)” y haga click en OK.
d. Con Power BI, haga click en “Get Data”, elija “Text/CSV” y posteriormente, en la ventana
de selección de archivos, navegue hacia la carpeta “textos” y seleccione el archivo
“InternetSales.txt”
e. En la ventana siguiente fíjese en cómo están desplegados los nombres de Producto en
francés. Verá que hay caracteres raros. Esto significa que el encoding (codificación) puede
no ser el correcto. Efectivamente, debe modificar la codificación propuesta por Power BI
a “65001: Unicode UTF-8”. Cuando lo haga, verá que los caracteres especiales del francés
y español se verán correctamente.
f. El delimitador que aparece el “Tab”. Pruebe cambiándolo y viendo el efecto. Vuelva al
Tab para poder seguir.
g. Donde dice “Data Type Detection” haga click para ver las opciones disponibles. Aquí
configuramos si no queremos que Power BI trate de detectar los tipos de datos de las
columnas, o si queremos, en base a cuántas filas leídas queremos que haga la detección.
Deje la opción “Based on first 200 rows”
h. Presione “Edit” (Editar). Aparecerá la ventana del Query Editor (Editor de consultas)
i. Verá que aparecen los datos que el editor de consultas interpretó según la configuración
definida en los pasos anteriores para el archivo. Al lado derecho de los datos, verá una
sección llamada “Query Settings”. En ella verá una sub sección llamada “Applied Steps”,
que indica los pasos de transformación de datos que el editor de consultas ya aplicó
sobre los datos provenientes desde el archivo InternetSales.txt.
j. Ahora importe el archivo Clientes.txt. Recuerde configurar la codificación UTF-8 en la
ventana de vista previa. Todavía no importe los archivos dentro de la subcarpeta
“exchange rates”.

Página | 5
4. Extracción de archivos que conforman un conjunto de datos
único
Este ejercicio consiste en la carga de datos de varios archivos de distinto nombre, pero
idéntica estructura interna. Todos los archivos pasarán a ser parte de una sola query en
el editor de consultas.
a. Abra “Get Data” y seleccione “Folder”.
b. Seleccione la carpeta “exchange rates”.
c. Se mostrará una vista previa de los datos. Fíjese que no verá los datos mismos de los
archivos, sino que datos de los contenidos de la carpeta que acaba de abrir.
d. No haga click en “Combine”. Es muy fome. Lo haremos a mano. Haga click en “Edit”
e. Verá que en el editor de queries aparecerá una carpeta con unos contenidos. Esto es
normal en el caso de importación de carpetas.
f. El resto de sus consultas quedará en una carpeta llamada “Other Queries”. Entre ellas
aparecerá la query que representa los datos que le fueron presentados en el paso
anterior, bajo el nombre “exchange rates”. Esta query tiene la metadata de los archivos
del directorio, y en particular, una primera columna llamada “Content”.
g. Haga click en la zona amarilla que dice “Binary” de la primera fila de la columna “content”.
Cuando lo haga, se realizarán varios pasos, lo que podrá corroborar en la zona “Applied
Steps” a la derecha de la ventana del editor de queries. El efecto final es que usted está
viendo el contenido del archivo que representaba la primera fila de la query anterior,
correspondiente al “Argentinian Peso”.
h. La query Exchange rates se convirtió finalmente en los datos del primer archivo, lo que
no es nuestro objetivo. Para volver a lo que teníamos anteriormente, deshaga los pasos
realizados en orden desde el último hacia arriba, haciendo click en las “X” en la zona
“applied steps”, pero deje intacto el paso “Source”, que es el primero. El efecto de hacer
esto es que usted efectivamente echó para atrás los pasos de transformación de su query.
Debería ver nuevamente la columna “Content”.
i. Haga click en el pequeño botón con dos flechas verticales dirigidas hacia abajo, el cual
aparece al lado derecho en el nombre de la columna “Content”. Aparecerá una ventana
similar a la que aparece cuando se va a realizar la extracción de datos desde un archivo
de texto, con similares consideraciones (ver ejercicio 1), con la diferencia de que se puede
basar el examen de los datos en el primer archivo “First File” o en cualquier archivo
particular de la carpeta.
j. Haga click en OK. El efecto de esto es que la query “exchange rates” contendrá los datos
combinados de todos los archivos de la carpeta, cosa que queríamos lograr.

Página | 6
5. Extracción de datos de Producto Geográfico per Cápita desde la
Web
Cuando estemos haciendo nuestro reporte, querremos comparar las ventas por país de
una manera que nos permita rankear los equipos de venta con justicia. Las ventas
simples por país no nos permiten eso, porque naturalmente en USA se venderá más,
pro el tamaño del país. Entonces, queremos corregir la venta por poder de compra, lo
que sería un indicador justo. Si usted es economista y cuestiona la validez de este
indicador, relájese, que sólo lo usaremos para fines pedagógicos.
a. Abra la siguiente URL en su navegador de internet favorito y examine la página:
https://en.wikipedia.org/wiki/List_of_countries_by_GDP_(PPP)_per_capita
b. En Power BI haga click en “Get Data” y seleccione submenú “Other” y después “Web”.
c. Aparecerá un cuadro de diálogo en donde usted debe que copiar la URL mencionada
anteriormente. Después de hacer click en “OK”, aparecerá una ventana en cuyo lado
izquierdo aparece un listado de objetos, dentro de la cual encontrará uno llamado “Table
1”. Selecciónelo y verá que aparece una tabla al lado derecho. Haga click en “OK” para
pasar al editor de consultas.
d. Verá una nueva consulta llamada “Table 1”. Cámbiele el nombre, editando el texto
correspondiente en la sección “Query Settings” al lado derecho en la ventana del editor
de consultas. Póngale un nombre inspirador como “TablaGDP”. Ahora miremos los datos.
e. Verá que hay 3 columnas de datos, de las cuales la primera no es relevante para nosotros.
Dese el gusto de eliminarla.
f. Revise la columna con los montos. Si ud ya hizo el ejercicio 1, entonces la configuración
de su Locale es “Spanish (Chile)”, y acá tendremos un problema de detección de tipo de
dato, porque la columna “Int$” (aproveche de cambiarle el nombre a “GDP”) seguramente
fue detectada como número decimal, pero en realidad la coma es el separador de miles,
de acuerdo a cómo están representados los números en el sitio de Wikipedia.
g. Para corregir lo anterior, elimine el paso “Changed Type” y reinterprete el número como
“Whole Number”… ¿le fue bien o huele algo raro?
h. Efectivamente, la coma se está interpretando como la coma decimal. Para corregir esto
vuelva a elimiar el paso “Changed Type” y ahora lo hará un poco distinto: Seleccione el
tipo de dato del campo “GDP” y mire al final del menú desplegable, donde dice “Using
Locale”.
i. En el cuadro de diálogo que apareció, seleccione “Whole Number”, y aquí viene la
magia… en el cuadro desplegable “Locale”, seleccione “English (US)”. Lo que usted hizo
es pedirle al editor de queries que interprete el número de acuerdo a un Locale específico.
Y esto tiene mucho sentido cuando dentro de la generalidad de nuestros datos tenemos
por ahí un par de casos particulares, justamente como este. Casi todas sus fuentes de
datos pueden seguir una convención, pero podrá haber otra por ahí con una convención
distinta, por lo que cambiar el Locale del archivo Power BI no valdrá la pena.

Página | 7
j. Revise que ahora el GDP aparece representado como número entero, sin comas. Fíjese
también que el paso recién creado se llama “Changed Columns with locale”. Estamos
listos.

6. Extracción de datos de la UF (Web)


Este ejercicio consiste en la extracción de datos desde la Web. Lo interesante en este
caso es que los datos están separados en distintas tablas, lo que implica un trabajo de
unión, y además los datos vienen pivoteados, como tabla de doble entrada, lo que
normalmente es un problema.
a. Abra el siguiente link en su navegador:
http://www.sii.cl/valores_y_fechas/uf/uf2013.htm
b. En Power BI haga click en “Get Data” y seleccione submenú “Other” y después “Web” al
lado derecho.
c. Aparecerá un cuadro de diálogo en donde usted debe que copiar la URL mencionada
anteriormente. Después de hacer click en “OK”, aparecerá una ventana en cuyo lado
izquierdo aparece un listado de objetos, dentro de la cual encontrará tablas con nombres
desde “Table 0” a “Table 11”. Selecciónelas y verá que cada tabla representa los datos e 1
mes. Haga click en “OK” para pasar al editor de consultas.
d. Verá nuevas consultas desde “Table 0” hasta “Table 11”. Selecciónelas todas con
Shift+Click derecho y “Move To Group”. Con esto creará un grupo de consultas, y llámele
“Preparación UF”.
e. En el menú Home→Append Queries, seleccione “Append Queries as New”, con lo que
aparecerá un cuadro de diálogo, en donde debe seleccionar la opción “Three or more
tables”, y podrá seleccionar todas las consultas correspondientes. Al completar la
operación se generará una consulta nueva con todos los datos de las 12 anteriores.
Cámbiele el nombre a MezclaUF.
f. Fíjese que las columnas de meses con datos estén detectadas como números decimales
(ícono “1.2”). Los números tienen 2 decimales después de la coma, y donde no hay valores
está escrito el valor “null”. Si ve todo esto, estamos bien. Si aparecen columnas sin valores,
estas serán interpretadas como texto, con ícono “ABC”. A todas las columnas vacías
cámbieles el tipo de dato a número decimal. Como resultado, debería ver valores “null”
en vez de vacíos.
g. La tabla MezclaUF tiene 3 pares de columnas cuyos datos en realidad quisiéramos ver en
sólo un par de columas, y esto es debido a cómo los datos estaban presentes en el origen.
Un Append inteligentemente hecho lo resolvería. Para esto crearemos 3 consultas como
referencias de la tabla MezclaUF: ValorUF_1, ValorUF_2 y ValorUF_3.
h. A ValorUF_1 le eliminamos el segundo y tercer par de columnas. A ValorUF2 el primer y
tercero, y a ValorUF3 el primero y segundo. Posteriormente en cada caso renombramos
cada para como “Dia” y “UF”, para finalmente hacer un Append de las 3 consultas, el cual
llamaremos “UF”

Página | 8
i. Tanto MezclaUF como las ValorUF_X las dejamos en el grupo “Preparación UF”. A todas
las consultas de este grupo les eliminamos la selección de la casilla de verificación “Enable
Load”, de manera que posteriormente no aparezcan en el modelo de datos del reporte.
j. Recordando que nuestro objetivo es tener fecha y monto, lo que tenemos ahora se
aproxima, pero todavía no es exactamente eso. Tenemos que convertir de alguna manera
los datos que tenemos en una columna de tipo Fecha. Para eso vamos a aprovecharnos
de que el editor de consultas puede interpretar un texto como una fecha, si sigue un
formato específico. Entonces, primero vamos a crear ese texto. Vaya al menú Add Column
y seleccione “Custom Column”
k. En el diálogo que va a aparecer, escriba “Año” en el cuadro para el nombre. En el cuadro
para la fórmula, asegúrese de que quede como “= 2013”, y presione “OK”.
l. Reordene las columnas arrastrando sus nombres hacia los lados, para que las columnas
que conforman la fecha queden en siguiente orden de izquierda a derecha: MES-DIA-
AÑO
m. Ahora seleccione las 3 columnas de la fecha (CTROL-Click) y en el menú “Transform”
seleccione la opción “Merge Columns”. Ojo que también encontrará una opción idéntica
en el menú “Add Column” ¿por qué?... Volviendo a lo anterior, aparecerá un cuadro de
diálogo que le permitirá seleccionar un separador de los campos, ninguno, o uno
“Custom”. Elija “Custom” y en el cuadro que aparecerá escriba un signo menos “-“. Más
abajo escriba “Fecha” o algo así. Aprete “OK”
n. Una vez hechos lo anterior, haga click sobre el tipo de dato de la columna (a la izquierda
de su nombre) y seleccione “Date”. Si todo funcionó bien, entonces ahora debería ver su
columna en formato fecha, con el texto en itálica, por ejemplo: 01-02-2017.

Página | 9
7. Uso de parámetros en carga y transformación
Si hizo el ejercicio 6, se dará cuenta de que al año siguiente va a tener que modificar el
origen de datos para poder cargar los valores de la UF del 2014. Aunque sea una vez al
año, implica un trabajo manual que podría ser olvidado, y más grave aun, podría tener
que realizarlo en varios reportes Power BI. Al menos, podría ser algo más simple que
cambiar el origen de datos a mano, ¿no? Afortunadamente, los desarrolladores de
Power BI ya crearon la posibilidad de utilizar parámetros, poderosa característica con la
cual, entre otras cosas, podremos solucionar el tema de la página de la UF.
a. Primero vamos a crear un parámetro llamado “Año”. Este parámetro será utilizado para
que carguemos la página web correcta de la UF mediante hacer que la URL sea dinámica.
Vaya al menú “Home”, opción “Manage Parameters” y seleccione “New Parameter”.
b. En el cuadro de diálogo que aparecerá, póngale nombre “Año”, en “Type”, seleccione
“Text”. En “Suggested Values” seleccione “List of Values” y escriba 2012, 2013 y 2014. Más
abajo, en “Default Value”, seleccione 2014, y para “Current Value” escriba 2013.
c. Fíjese que en la lista de consultas a lado izquierdo, verá un ícono distinto al de las otras
consultas, que dice “Año(2013)”. Cuando haga click en el parámetro, en el centro verá que
puede escribir o seleccionar un valor. Ha creado su primer parámetro.
d. Ahora vamos a utilizar efectivamente nuestro primer parámetro. Vaya al menú “Home”
→ “Data Source Settings”. En el listado que aparecerá, seleccione el origen de datos
correspondiente a la URL de la UF, y aprete el botón “Change Source”.
e. Aparecerá el cuadro con la URL, y verá que a la izquierda del texto aparece una lista
desplegable con las opciones “Text”, “Parameter” y “New Parameter”. También verá que
hay un cuadro de lista “Open File as” con un listado de formatos posibles. Eso puede
servir cuando su URL apunta directamente a un formato como los listados, en vez de una
página html. Haga click en la opción “Advanced” que aparece por encima del texto del a
URL.
f. El cuadro se amplió. Ahora usted podrá definir su URL a pedacitos en la sección “URL
Parts”. Actualmente aparece su URL arriba, y verá una segunda línea vacía, ¿cierto? Y verá
que cada parte puede ser asociada a un parámetro. Nuestro parámetro es el año y, por
su parte, el año en la URL está en medio. Quisiéramos que solamente esa parte de la URL
se asociara a nuestro parámetro, y el resto siempre se mantuviera fijo (o hasta que al SII
se le ocurra cambiar su sitio web, y ahí nos echa a perder el ejemplo…):

http://www.sii.cl/pagina/valores/uf/uf 2014 .htm

Siempre igual Variable Siempre igual

Página | 10
g. Haga click en “Add part” para que hayan 3 partes. En la primera dejemos la primera parte,
en la segunda configuremos para que ahí vaya el parámetro “Año” y en la tercera parte
pegamos el texto que va después del año, tal como la figura anterior. Si todo está bien
configurado, en la zona “URL Preview” debería ver lo siguiente:
http://www.sii.cl/pagina/valores/uf/uf{Año}.htm
h. Haga “Close & Apply” y vaya a mirar sus datos en la vista de tablas de Power BI. ¿todo
bien?... tómese un minuto revisar.
i. Ok, veamos… claramente sale todavía 2013 como el año en los datos. La razón de esto
está en el paso k del ejercicio 6.
j. En la consulta “UF” cambiemos la definición de la columna “Año”. Hum, pero esa columna
ya no existe. ¿qué hacemos?... Recuerde que puede navegar los pasos de transformación
de una consulta. Vaya al paso “Added Column” y haga click en el ícono del engranaje al
lado derecho. Ahí podrá configurar la creación de la columna. Reemplace el 2013 por
“@Año”.
k. Repita el paso h.

Página | 11
Modelación
En esta sección nos basaremos en los resultados de la sección anterior y crearemos un
modelo de datos que permitirá cubrir nuestras necesidades de visualización. Esto
contempla tablas relacionadas, columnas innecesarias escondidas del usuario final, con
jerarquías, columnas calculadas, medidas, tablas escondidas, etc.

1. Conectando el modelo
Vamos a generar las relaciones entre las tablas que permitirán que los datos se filtren y
crucen de manera correcta, según la lógica del negocio.
a. En la vista de modelo de la ventana de Power BI, revise las tablas creadas.
b. El modelo original de base de datos desde el que se crearon los archivos de texto es el
siguiente. Fíjese en las relaciones entre las tablas:

c. Ahora conectemos la tabla “InternetSales” con la tabla “Fechas”. Hay 3 posibilidades de


conexión, y en realidad las haremos todas. “Internetsales” tiene OrderDateKey,
DueDateKey y ShipDateKey. La llave de “Fechas” es DateKey. Conecte cada una de las
columnas mencionadas de InternetSales hacia Fechas. Se generarán 3 relaciones en el
modelo y deberemos escoger cuál es la relación activa. Como nuestro interés es analizar
por la fecha de la orden, entonces la relación en que OrderDateKey esté involucrada debe
quedar activa.
d. Conecte InternetSales – Productos – SubCatproductos – CatProductos
e. La tabla de la UF no tiene sentido de negocio en este modelo, pero fue tan linda de crear,
¿cierto?. Igual la puede conectar a la tabla de Fechas, pero ojo que no por la llave. ¿por
qué?...

Página | 12
f. Conecte InternetSales – clientes – Geografia - GDP.
g. Conecte InternetSales – Monedas – ExchangeRates
h. Conecte Fechas – ExchangeRates
i. Vuelva a mirar el diagrama del punto b. Fíjese en que se están representando relaciones
1:N con el lado “1” como una llavecita y el “N” como un símbolo de infinito. Ahora mire el
modelo que usted conectó en Power BI. Fíjese en los dibujos triangulares que aparecen
en las líneas de las relaciones. Esos dibujos representan la dirección de filtrado cruzado o
“Cross filter Direction”, el cual puede ser “Single” o “Both”. Cuando una relación es 1:N, y
seleccionamos “Single”, los filtros aplicados sobre el lado 1 de la relación son difundidos
hacia el lado N, pero no al revés. Con “Both”, los filtros aplicados en el lado N son
difundidos al lado 1 además.

2. Limpiando visualmente el modelo


Si por un momento nos sacamos el sombrero de modeladores y nos ponemos el de
usuario final, encontraremos que hay columnas de las tablas que eventualmente nunca
utilizaremos para fin analítico alguno, como las llaves de las tablas, por ejemplo, las
cuales son vitales para conectar las tablas, pero nunca son usadas explícitamente para
visualizar. A su vez, nos aseguraremos de que
a. Hagámosle un favor al usuario final y escondamos todas las llaves de las tablas, y también
las llaves foráneas. Haga click en una columna de una tabla en la vista modelo (por
ejemplo, DateKey de la tabla Fechas), y seleccione “Hide in report view”.
b. Pase a la vista de tablas y revise las tablas. Fíjese que las columnas escondidas están con
un color más suaves.
c. Pase a la vista de reporte, y verá que… ¡no están! Pero eso es bueno. ¿Se fija que ahora
el modelo es más limpio para el usuario final, sólo mostrándole lo necesario?.

3. Enriqueciendo la metadata de formato


Una ventaja de Power BI sobre Excel y sus tablas dinámicas es que nosotros podemos
definir cierta información de formato en el modelo de datos. Por ejemplo, si un valor es
moneda, lo podemos definir como tal en el modelo, con lo que todas las visualizaciones
lo mostrarán con signo de moneda.
a. Vamos a centrarnos en la tabla InternetSales. Aquí hay varias columnas que deberían
representarse como moneda (Currency). Modifíquelas para reflejar esto. Por ejemplo:
SalesAmount

Página | 13
4. Corrigiendo la agregación por defecto (Summarize)
Power BI automáticamente decide que ciertas columnas de una tabla son candidatas a
mostrarse resumidas mediante alguna función de agregación. Eso explica los signos de
sumatoria 𝛴 al lado del nombre de las columnas. Eso tiene el efecto de que cuando
muestro una columna agregada con otra no agregada en una visualización, Power BI
calcula la agregación y agrupa por la columna no agregada. Queremos que el
comportamiento por defecto de esto esté bien definido.
a. Ubique en las tablas del modelo las columnas que se agregan, pero no deberían. Haga
click sobre ellas. En el menú “Format”, seleccione “Default Summarization: Don’t
Summarize”.
b. Ojo, que la agregación por defecto es simplemente la primera opción se agregación que
Power BI asume para la columna cuando estoy creando visualizaciones. Esto se puede
cambiar al momento de utilizar la columna.

Página | 14
5. Creando Jerarquías
En Power BI podemos crear Jerarquías, es decir, la definición de agrupaciones anidadas
entre columnas de una tabla. Por ejemplo: Año-Semestre-mes, Año-mes, Categoría-
subcategoría-Producto, etc. Son utilizadas en operaciones de Drill Down de objetos
gráficos. Esto es similar a lo que se hace a mano en las tablas dinámicas de Excel, lo que
permite hacer drill down. Pero acá se puede dejar predefinido para facilitarle la vida a
nuestro amigo el usuario con el drill down en distintas visualizaciones como gráficos de
barra, por ejemplo.
a. En la tabla de Fechas cree las siguientes jerarquías
a. CalendarYear – CalendarQuarter – EnglishMonthName
b. CalendarYear – EnglishMonthName
b. En la tabla Productos cree la siguiente jerarquía
a. EnglishCategoryName-EnglishSubCategoryName-EnglishProductName
b. ¿cómo le fue?... ¿o no le fue?
c. Ok, aquí haremos uso de un poquito del poderoso lenguaje de Power BI para
cálculos de distinta complejidad, llamado DAX.
d. Vaya a la vista de tablas y seleccione la tabla Productos. En el menú “Modeling”,
vaya a “New Column” y cree una nueva columna, ingresando la siguiente formula:
subcat = RELATED(subcatproductos[EnglishProductSubcategoryName])
e. Repita el paso anterior con la siguiente fórmula:
cat = RELATED(catproductos[EnglishProductCategoryName])
f. Felicitaciones. Acaba de encontrar un análogo DAX al BUSCARV() de Excel. Si es
su primera vez, atesore este momento.
g. Ahora que tiene las 3 columnas de la jerarquía, puede repetir el paso a.
h. Ya que estamos en esta, aproveche de crear la Jerarquía cat-subcat (sin producto)
i. Oiga… ahora que tiene el nombre de la categoría y subcategoría en la tabla de
producto… ¿para qué le servirían al usuario las otras dos tablas?

6. Limpiando de tablas innecesarias


¿Vio la quemante pregunta que le hice al final del ejercicio anterior? Bueno. Si una tabla
sirve para la modelación, pero ya no es práctica desde el punto de vista del usuario
final, podemos esconderla completa
a. En la vista de modelo, haga click derecho sobre las tablas de categoría y subcategoría de
productos, y escóndalas. Aquí los sentimientos de las tablas no valen.

Página | 15
7. Estudiando el efecto del Cross Filter Direction
El Cross Filter Direction es una opción de la configuración de las relaciones en el
modelo de datos, la cual define cómo el filtrado que afecta a una tabla afectará a la
otra tabla en una relación. Cuando el CFD es “Single”, el efecto del filtrado se propaga
desde la tabla del lado “1” de la relación hacia la tabla con el lado “N”, pero no al revés.
Si es “Both”, se propaga en ambas direcciones, de manera que el efecto de filtrar la
tabla en el lado “N” se propaga al lado “1” de la relación. Manos a la obra.
a. En la vista reporte, cree una tabla de tipo “Matrix”
b. Agregue EnglishEducation(Clientes) y CalendarYear(fechas) a la sección “Rows”
c. Agregue la suma del SalesAmount(InternetSales) y el Count Distinct del ModelName
(productos) a la sección “Values”
d. Fíjese en la columna con el conteo del ModelName. ¿Le cuadra?
e. Ahora vaya a la vista de modelo y cambie el Cross Filter Direction de la relación entre las
tablas InternetSales y Productos desde “Single” hasta “Both”
f. Reflexiones sobre el por qué del cambio.

8. Columnas Calculadas y Medidas con DAX


DAX es a Power BI como las fórmulas a Excel. Extienden maravillosamente lo que
podemos lograr mostrar en nuestras visualizaciones.
a. En la tabla InternetSales agregue un par de columnas calculadas con las siguientes
fórmulas:
a. TipoCambio = LOOKUPVALUE('exchange
rates'[AverageRate];'exchange
rates'[DateKey];ventas[OrderDateKey];'exchange
rates'[CurrencyKey];ventas[CurrencyKey])
b. CostoDolar = ventas[TotalProductCost] / ventas[TipoCambio]
c. MontoVentaDolar = ventas[SalesAmount] * ventas[TipoCambio]

b. Utilizando la funcionalidad de “Ingresar Datos” (Enter Data), cree una tabla con una
columna sin Datos. Nómbrela “Medidas”
c. Dentro, con “Nueva medida” (New Measure) cree medidas con las siguientes fórmulas:
a. Suma Ventas = SUM(ventas[MontoVentaDolar])
b. Suma Costos = SUM(ventas[CostoDolar])
c. Margen = [Suma Ventas] - [Suma Costos]
d. % Margen = DIVIDE([Margen]; [Suma Ventas]; 0)

Página | 16
Visualización
Por fin llegamos a la Visualización, que es uno de los dos objetivos de la reportería en
general (el otro es la distribución de información) y en el cual Power BI es bastante
atractivo como herramienta. Aquí realizaremos algunas labores previas para darle
apariencia y funcionalidad profesional a un reporte, crearemos algunos gráficos y tablas
típicos, importaremos visualizaciones nuevas, jugaremos con la interacción entre
gráficos, jugaremos con la seguridad a nivel de fila (“row level security”)

1. Preparación previa para usabilidad y apariencia profesional.


Crearemos una zona de filtros básica en la hoja y la replicaremos para tener varias
hojas similares.
a. En la vista Reporte, menú “Home”, elija “Shapes” y haga click en “line”.
b. Cree una línea vertical que separe la hoja en dos zonas. La de la izquierda que ocupe a
lo más un 20% de la hoja.
c. En la vista Reporte, menú “Home”, elija “Shapes” y haga click en “Image”. Seleccione el
archivo “AdventureWorks-Logo_blog.jpg” e insértelo en la esquina superior izquierda
d. Agregue 2 “slicers”: CalendarYear y EnglishMonthName en la zona de la izquierda, bajo
el logo. Configúrelos para mostrar los datos en modalidad “DropDown”
e. Haga click derecho en la pestaña inferior que dice “Page 1” y elija “Duplicate Page”. De
esta manera podrá copiarla replicando un conjunto de objetos que querrá conservar en
otras páginas.
f. Disfrute.

2. Creación de tablas
Crearemos una tabla y una matriz para visualizar datos.
a. En la Hoja 1 cree una tabla que tenga EnglishCountryRegionName, City y suma de
SalesAmount (o margen)
b. Al lado cree una matriz que muestre.
a. Rows: EnglishOccupation e EnglishProductCategoryName
b. Columns: Marital Status y HouseOwnerFlag
c. Values: suma del SalesAmount (o margen)
c. Observe las opciones que la matriz da para Drill Down. Juegue un poco con ellas.

Página | 17
3. Creación de Gráficos de barra, líneas y tortas. Modificación de
interacciones.
Crearemos algunos gráficos y modificaremos la manera en que interactúan entre sí.
a. En una hoja nueva a partir de la plantilla creada para el primer ejercicio, cree los siguientes
gráficos:
a. Barras Horizontales con suma de SalesAmount (o margen) por
EnglishCountryRegionName
b. Líneas con suma de SalesAmount (o margen) por FullDateAlternateKey
c. Barras apilada al 100% con suma de SalesAmount (o margen) por
FullDateAlternateKey, con EnglishOccupation como leyenda.
d. Torta de suma SalesAmount (o margen) por CommuteDistance
e. Torta de suma de SalesAmount (o margen)por EnglishEducation
b. Ahora haga click en el gráfico de barras de ventas por país. Haga click en cualquier barra
de país para observar cómo el resto de los gráficos reacciona.
c. Con el gráfico de barras por país seleccionado, vaya al menú “Format”, y haga click en
“Edit Interactions”. Vea que en los gráficos aparecen unos botones nuevos en la parte
superior derecha. Fíjese en los gráficos de torta y haga click en los distintos botones
nuevos, sin dejar de tener el gráfico de barras seleccionado.
d. Reflexione.

4. Creación de un mapa
a. Copie la hoja del ejercicio 3 y borre los todas las visualizaciones, dejando los filtros. Esto
asume que tenemos la hoja preparada de acuerdo con el ejercicio 1, con logo, línea y
filtros por año y mes.
b. Ahora cree un gráfico de tipo Map con los siguientes datos:
a. En “Location” utilice EnglishCountryRegionName y City, en ese orden
b. En “Size” utilice “SalesAmount” (o margen)
c. En “Color saturation” Utilice “OrderQuantity”
c. Modifique la escala de saturación de color yendo al menú de la brocha de rodillo,
entrando en el submenú “Data colors” y seleccionando un rojo para el máximo y un azul
para el mínimo.

Página | 18
5. Importación de Custom Visuals
Importaremos un filtro jerárquico.
a. Haga click en el menú Home→From Store
b. En la ventana que aparecerá, filtre por “Filters”, encuentre “HierarchySlicer” y haga click
en Add.
c. Este slicer permite utilizar jerarquías. Utilice la jerarquía de Categoría – Subcategoría de
productos. Colóquelo dentro del área de filtros de la página.

6. Seguridad a Nivel de Fila (Row Level Security)


Esta característica es espectacular cuando de filtrar los datos según quién los está
viendo es una necesidad.
a. Haga click en el menú Modeling→Manage Roles
b. Cree un rol llamado “Americanos”. Posteriormente haga click en el menú de puntos
suspensivos al lado derecho de geografía, seleccione “Add Filter”,
EnglishCountryRegionName, y finalmente en el cuadro de la derecha, escriba lo siguiente:
OR([EnglishCountryRegionName] = "United States",
[EnglishCountryRegionName] = "Canada")
c. Repita el paso anterior, para sendos roles “Europa” y “Otros”, ampliando la fórmula
correspondiente al nombre de los países que correspondan.
d. Haga click en “Save” para volver a la vista Reporte. Haga click en “View as Roles”,
seleccione un rol, apreté OK y observe lo que pasa. Repita para el resto de los roles.
e. ¿Se fija que creamos una condición relativamente simple para definir el filtrado a priori
de los datos según el rol?

Página | 19
7. Controlando las páginas afectadas por un filtro
Un slicer (filtro) normalmente afecta la página del reporte en donde se encuentra, pero
actualmente es posible modificar este comportamiento, permitiendo que el filtro afecte
páginas adicionales a la original, pudiendo elegir si queremos que sea visible o no en
ellas. Es decir, puedo multiplicar un mismo slicer entre páginas y optar por sincronizar la
selección de estos múltiples slicers.
a. Partiremos de la base de que tenemos una página con los gráficos de barra y tortas según
el ejercicio 3, y que también tenemos un gráfico de mapa, según el ejercicio 4.
b. Elimine los slicers de CalendarYear y EnglishMonthName de la hoja con el mapa.
c. Active (haga click en) el slicer de CalendarYear en la hoja de los gráficos de barra y torta.
d. Vaya al menú “View” y seleccione la casilla de verificación “Sync Slicers”. Aparecerá una
zona nueva en los menúes de lado derecho

e. Esta zona muestra los nombres de las hojas y 2 columnas, una con un embudo y otra con
un ojo. Sólo verá esto si el slicer del CalendarYear está seleccionado en la hoja de Gráficos.
Verá que ambas columnas están tickeadas. La derecha controla la visibilidad del filtro y la
izquierda permite definir si quiero que este slicer esté sincronizado con otras versiones
del mismo slicer en otras páginas.
f. Dejando todo como se ve en la imagen de más arriba, vaya al ahoja del mapa y ponga
el puntero del mouse sobre la venta de Londres. El tooltip que aparece debería mostrar
algo como lo siguiente. Fíjese en el monto:

Página | 20
g. Ahora vuelva a la hoja de los gráficos y active el slicer del año. En la zona de Sync Slicers
marque la opción de sincronización bajo la columna de filtro, quedando así:

h. Ahora filtre algún año, por ejemplo, 2013, y vuelva a chequear el tooltip de las ventas de
Londres:

i. El monto cambió
j. Marque ahora la opción de visualizar el slicer en la hoja del mapa, y en ella aparecerá el
mismo slicer, con la misma selección.
k. Interesante, ¿ah?

Página | 21
Servicio Power BI en la nube
1. Publicando hacia la nube
Además de ayudar en la visualización de datos, la otra gran misión de herramientas
como Power BI es la distribución de la información. Power BI logra esto mediante su
servicio en la nube, el que nos permitirá publicar y compartir visualizaciones de Power
BI. El acceso será desde nuestros navegadores de internet o la aplicación Power BI
móvil, para iOS y Android.
Es necesario antes tener una cuenta Power BI. Para esto hay que inscribirse
gratuitamente para la prueba de 60 días. Si no tiene cuenta, haga lo siguiente:
a. Vaya a https://powerbi.microsoft.com/es-es/get-started/
b. Avance hacia abajo por la página hasta que encuentre el link “Pruébelo gratis” y haga
click:

c. Ingrese una dirección de correo de trabajo (no Hotmail, Gmail live u otra personal) e
ingrese los datos que a continuación le pedirán.

Página | 22
Para publicar el reporte, haga lo siguiente:
a. Grabe el reporte
b. Haga click en “Publish” (Publicar). Eso le pedirá ingresar su email y contraseña de cuenta
Power BI (Ver página anterior)
c. Una vez autenticado en Power BI, aparecerá su nombre en la esquina superior derecha y
aparecerá una ventana que le permitirá seleccionar el “Workspace” (espacio de trabajo)
en donde quiere publicar el reporte, en caso de que tenga más de un workspace
disponible. (Típicamente existe uno por defecto llamado “My Workspace”)
d. Una vez realizada la publicación, usted podrá ingresar al sitio web mediante el link
proporcionado por Power BI Desktop en la ventana de confirmación, o yendo
directamente a https://app.powerbi.com e ingresando con el usuario y password.
A diferencia de Power BI Desktop, en donde modelo, datos y visualización son parte de
un todo (el archivo .pbix), cuando un reporte es publicado, es separado en 2
componentes: El “Dataset” (conjunto de datos), que consiste en:
• la información relacionada con la extracción, transformación y carga de datos
• el modelo de datos y
• los datos mismos (excepto cuando operamos en modo “Direct Query”).
Una vez que ha ingresado en app.powerbi.com, usted verá una zona a la izquierda, en
donde encontrará los datasets separados de los reportes
Reportes

Datasets

Al inicio, el reporte y el dataset tienen el mismo nombre.

Página | 23
2. Asignando usuarios a roles de seguridad
En el ejercicio 6 de la sección “Visualización” definimos roles de seguridad. Desde el
servicio Power BI en la nube podemos hacer la asociación entre usuarios y roles de
seguridad creados en Power BI Desktop.
a. Con su reporte ya publicado, vaya a la zona de los Datasets, ubique el del reporte y haga
click en el ícono de puntos suspensivos a lado derecho del nombre.
b. Seleccione “Security” (seguridad)
c. Aparecerán los roles creados al lado izquierdo y un cuadro para escribir los nombres de
usuario (emails) de otros usuarios.

Página | 24

También podría gustarte