Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FUNCION RANKX
Creamos una tabla que incluye las columnas Productos, Total Units y Total Ventas Inc IGV
Del mismo modo creamos la medida “Rank Total Ventas”, y la agregamos a la tabla
Podemos observar en la parte final del ranking de la columna “Rank Total Units ASC” que de la
posición 382 se pasa al 1, esto debido a que encuentra 381 registros con el mismo valor y a
todos les coloca valor 1 y luego salta al valor 382.
Por ejemplo si requerimos calcular el porcentaje de descuento sobre los precios de nuestros
productos
Tenemos creada una Tabla con el listado de Productos y la medida Costo Total, queremos
proyectar cual sería el nuevo precio de compra con un descuento proyectado.
Mínimo: 0
Máximo: 1
Incremento: 0.1
Valor predeterminado: 0
Esto crea una tabla con el nombre “Descuento Precio” que tiene una columna con el mismo
nombre “Descuento Precio” que se ha generado en base a los parámetros que hemos indicado
y también contiene una medida llamada “Valor Descuento Precio”
Esta medida lo que hará es tomar el valor que se encuentre seleccionado en el filtro.
Por ejemplo si agregamos una tarjeta y a la misma le asignamos la medida creada, en la tarjeta
se mostrará el valor que se encuentre seleccionado en el filtro.
Ahora aplicaremos el descuento al precio de compra original, para eso crearemos una nueva
medida en la tabla de Productos llamada “Precio Compra Descuento” cuya fórmula es:
El valor de la medida Precio Compra Descuento corresponde a la resta entre el Costo Total
menos el Costo Total por el Valor Descuento Precio, esta última corresponde a la medida
generada en automático al crear el parámetro.
Luego llevamos la medida Precio Compra Descuento como una nueva columna a la tabla y
ahora se puede visualizar el Costo Total con el porcentaje descuento indicado en el valor del
filtro que estamos aplicando, si modificamos dicho porcentaje de descuento también se
modificará el valor de la columna Precio Compra Descuento.
Para hacerlo ir al menú Modelado luego clic en Nueva Tabla y a continuación creamos la nueva
utilizando la función TOPN con la siguiente fórmula:
Si vamos a la sección de datos y abrimos la nueva tabla creada, podemos ver que muestra las
filas con los 5 mayores valores de ventas
A continuación podemos utilizar esta cálculo para mostrar las 5 mayores ventas por
fabricantes, para eso crearemos una nueva medida utilizando la función SUMX.
Esta función toma como parámetros la tabla generada con la función TOPN y tiene como
segundo parámetro mostrar el valor en función del valor de monto de ventas.
Para solucionar este inconveniente, tenemos que modificar la medida Top 5 Ventas x
Fabricante, agregándole a la función una tabla sobre la cual debe iterar, esta tabla debe
contener el Fabricante, la vamos a crear con SUMX.
Tenemos una tabla que muestra el listado de Productos con sus valores de Ventas Inc. IGV y
como filtros se tienen los años.
Vemos que se genera el Slicer o Filtro donde podemos modificar el valor, pero aun no produce
ningún efecto sobre nuestra tabla de Productos y Montos de Ventas.
A continuación, procedemos a quitar del listado de las columnas, las columnas RANKX y TOP N
Seleccionado:
Crear un filtro de Categorías mostrado en forma horizontal y una tabla que incluya las
siguientes columnas: Segments, Total Units, Total Sales, Total IGV y Total Ventas Inc. Igv
Ahora crearemos una nueva medida llamada Valor Seleccionado, donde utilizaremos la
función SELECTEDVALUE, cuyo primer parámetro indica que devolverá el Segmento que se
encuentre seleccionado, adicionalmente se le agrega como segundo parámetro el valor
“Seleccionar un Segmento” que será devuelto cuando no se tenga ningún valor seleccionado:
Para probar como se muestra el valor seleccionado agregaremos una tarjeta a la que le
asignaremos la medida Valor Seleccionado.
Esta medida se crea declarando la variable Categoria cuyo valor es igual al valor seleccionado
devuelto por la Categoría seleccionada en el filtro de Categorías.
Esta es la fórmula completa con el total de valores devueltos por la función SWITCH
Imagen Categoria_ =
var Categoria = SELECTEDVALUE(Products[Category],0)
return
Agregaremos un nuevo tipo de Gráfico denominado Image by Cloudscope, el mismo que será
seleccionado desde el Store de Microsoft.
Ahora sí se podrá visualizar la imagen que está relacionada a la categoría que se seleccione:
Ir a la opción Especificar Datos que abrirá la opción para crear una tabla.
Luego presionar la opción Cargar, que creará la tabla Tipo Total Ventas.
Por último crearemos una nueva medida llamada Tipo Ventas Seleccionado cuya fórmula inicia
con la creación de la variable Tipo_Ventas, que será el valor seleccionado desde el filtro que
contiene el campo Tipo Total Ventas que muestra como valores Inc IGV y sin IGV, con éste
valor seleccionado a continuación se utiliza la función SWITCH que de acuerdo al valor de la
variable Tipo_Ventas, devolverá la medida Total Ventas Inc. Igv, Total Sales, o Seleccione un
Filtro, sino se selecciono ninguno de los dos.
Agregamos una Tarjeta donde mostraremos el valor de la medida Tipo Ventas Seleccionado.
Vamos a utilizar una página de detalle, para eso crearemos dos páginas, la primera será la
página: Categorias. Esta página contiene un filtro de Años mostrado en forma horizontal, una
tarjeta que muestra la medida Total Sales, y un gráfico de barras agrupadas que muestra Total
Sales por Categoria.
Luego construiremos la página Detalles Categoria, esta página contiene los siguientes gráficos:
Una tarjeta para mostrar la Categoría que contiene la medida Mostrar Categoria. La
medida Mostrar Categoría contiene la siguiente fórmula:
Tres tarjetas adicionales que mostrarán los valores de Total Sales, LY Sales (ventas del
año anterior) y Sales Var,
Un gráfico del tipo Image by Cloudscope que contiene la medida Imagen Categoria. La
medida Imagen Categoria ya existe.
Un gráfico del tipo Treemap, que contiene Total Sales por Segment,
Un gráfico del tipo tabla con las siguientes columnas: Product, Total Units, Total Sales, LY
Sales y Sales Var %
Un gráfico de columnas agrupadas que muestra Total Sales y LY Sales por Month Name
Ahora en página Categorias insertaremos un botón que nos permitirá ir a la página de detalle
en lugar de tener que dar clic derecho al seleccionar una categoría.
Insertamos un botón en blanco, para eso ir a la opción Insertar, luego clic en Botones y
seleccionar la última opción: En Blanco
Categoria Seleccionada =
var Categoria_ = SELECTEDVALUE(Products[Category])
return
IF(ISBLANK(Categoria_),"Seleccione una Categoria","Ver detalle de la Categoria " &
Categoria_)
Iremos a Texto del Botón, borramos Ver detalle y damos clic en el botón de función Fx. Se abre
una ventana donde podemos dar formato por Valor de Campo y en la opción Según el campo
buscamos el nombre de la medida Categoria Seleccionada y luego Aceptar.
Abre una ventana para configurar las opciones de formato condicional, verificamos que sea el
campo seleccionado, y luego seleccionamos el Estilo y configuramos las reglas como se indica
en la pantalla:
Nos permiten guardar los estados en los que se encuentran los objetos visuales en nuestros
reportes.
Se habilita la sección de Marcadores y allí sin seleccionar nada agregamos un nuevo Marcador
con el nombre Home.
Ahora podemos navegar entre ambos marcadores y podemos ver que si seleccionamos el
marcador Home la página no tiene filtros, mientras que si seleccionamos Año 2013, aparece
marcado el filtro del año 2013, cambiando todos los valores de la página de acuerdo al
marcador seleccionado.
Quitamos ambos Marcadores, con clic derecho sobre el marcador y seleccionamos Eliminar, lo
hacemos para ambos.
Seleccionamos el tipo de Tema: Valor Predeterminado, para que nos se vean los dos objetos
superpuestos, quedándonos de la siguiente manera:
Para poder acceder los objetos de manera más fácil habilitamos el panel de Selección que se
encuentra en el menú Ver y ahora nos muestra una sección de Selección
Llevamos las Tablas hacía la parte superior, y a continuación quitamos el filtro del año 2013 y
procedemos a ocultar los gráficos Pye y de Barras:
Ahora hacemos lo inverso, es decir habilitamos los gráficos tipos Pye y Barras y ocultamos los
gráficos de Tablas y agregamos un Marcador llamado Tipo Gráfico:
Ahora asignaremos los Marcadores como acciones de las imágenes o botones creados, para
esto, seleccionamos la imagen de Tabla, vamos a la sección formato de Imagen, habilitamos
Acción, en Tipo seleccionamos Marcador y en Marcador seleccionamos Tipo Tabla.
Por último, si aplicamos el filtro de Año al seleccionar alguna de las dos imágenes, vemos que
este filtro se pierde al cambiar de imagen. Este es un comportamiento normal en los
Marcadores, para que no suceda hay que deshabilitarlo, para eso debemos ir a cada Marcador,
dar clic en los tres puntos y deshabilitar la opción Datos. Se tiene que hacer para ambos
Marcadores y ya con esto los filtros se podrán mantener.
Vamos a mostrar en una matriz las ventas por Categorías, que mostrará tres columnas: ventas
de lunes a viernes, ventas de fin de semana y ventas totales.
Crearemos manualmente una tabla que contendrá los campos que servirán como columnas
para el gráfico de tipo Matriz.
Para crear manualmente la tabla vamos al menú Inicio, opción Especificar datos y aparece una
pantalla para Crear Tabla, colocamos en el nombre de la columna “Columna Matriz” e
ingresamos como valores de la columna: Ventas, Fin de Semana y Lunes-Viernes. Luego
colocamos como nombre de tabla: Columnas Matrix y presionamos el botón Cargar
Ahora podemos ver que se ha creado una tabla con los datos que hemos ingresado:
Procedemos a crear un nuevo reporte donde incluiremos un filtro de años en forma horizontal
y un gráfico de tipo Matrix al que vamos a agregar en las filas las categorías de producto.
Vemos que muestra un mensaje de error ya que no tenemos ningún tipo de valor asignado
para mostrar, agregamos la medida “Total Sales” a la sección Valores, y ahora si muestra los
valores de Ventas, pero también podemos apreciar que para cada columna se repiten los
valores ya que aun no se ha creado una condición que las diferencie:
Para diferenciar las ventas en cada columna vamos a crear una nueva medida llamada Ventas
Matriz
Ahora crearemos dos nuevas medidas. La primera será la medida Ventas Lunes-Viernes
Ventas Lunes-Viernes = CALCULATE([Total Sales], FILTER('Date',
WEEKDAY('Date'[Date],2) in {1,2,3,4,5}))
En el gráfico se pueden ver ahora los valores indicados para: Lunes a Viernes, y
Fines de Semana.
Se crea la tabla Filtros Matrix con una sola columna llamada Filtros
Procedemos a crear dos nuevas medidas que permitirán ejecutar las acciones de estos dos
filtros:
Ventas Matriz =
var ColumnaSeleccionada = SELECTEDVALUE('Columnas Matrix'[Columna Matriz])
var FiltroSeleccionado =SELECTEDVALUE('Filtros Matrix'[Filtros])
return
SWITCH(FiltroSeleccionado, "Ventas ($)", SWITCH(ColumnaSeleccionada, "Fin de Semana",
[Ventas FinSemana]
Ahora el gráfico de la Matriz debería mostrar los valores en porcentajes o en montos de ventas
de acuerdo a lo seleccionado. Al seleccionar Ventas (%) vemos que muestra los porcentajes
pero en valor decimal:
Para que se muestre correctamente como % volvemos a modificar nuestra medida Ventas
Matriz y vamos a darle un formato de porcentaje, quedando de esta manera:
Ventas Matriz =
var ColumnaSeleccionada = SELECTEDVALUE('Columnas Matrix'[Columna Matriz])
var FiltroSeleccionado =SELECTEDVALUE('Filtros Matrix'[Filtros])
return
SWITCH(FiltroSeleccionado, "Ventas ($)", SWITCH(ColumnaSeleccionada, "Fin de Semana",
[Ventas FinSemana], "Lunes-Viernes",[Ventas Lunes-Viernes]
, "Ventas",[Total Sales])
, "Ventas (%)",SWITCH(ColumnaSeleccionada, "Fin de Semana",
FORMAT([% Ventas FinSemana],"percent"), "Lunes-Viernes", Format([% Ventas Lunes-
Viernes],"percent"), "Ventas",[Total Sales])
)
Las funciones ALL y ALLSELECTED tienen comportamientos distintos al mostrar valores luego de
aplicar filtros en la página donde se vienen utilizando, vamos a ver esas diferencias.
Queremos visualizar el total que representa en porcentaje las ventas por cada Categoría sobre
el total de las ventas y ver como se ven afectados sus valores en base a los filtros que se puedan
ir aplicando.
Creamos una nueva página y agregamos como filtros las categorías y los años y además creamos
una tabla donde mostraremos el total de ventas (medida “Total Sales”) por categoría.
Ahora crearemos una medida que nos muestre el total global de las ventas, que nos permitirá
luego calcular el porcentaje que representan las ventas de cada categoría.
Para crear esta nueva medida utilizaremos la función CALCULATE combinada con la función ALL
Y ahora procedemos a crear una nueva medida que nos muestre el porcentaje que representa
las ventas de cada categoría:
Al aplicar un filtro vemos que se mantienen los valores de la medida Ventas ALL no se ve
afectado, ya que la función ALL no se ve afectada por filtros externos:
Ahora calcularemos el total de las ventas utilizando la función ALLSELECTED creando la medida
Ventas ALLSELECTED
Es una nueva página llamada Acumulado agregaremos dos filtros en formato de listas, uno que
muestre los años (Year) y el otro que muestre las categorías de productos (Category). También
agregaremos una tabla que contenga los campos MonthName de la tabla Date y la medida
Total Sales.
Acumulado Anual =
CALCULATE(
[Total Sales],
FILTER(
ALLSELECTED('Date'),
'Date'[MonthNo]<=MAX('Date'[MonthNo])
)
)
Agregamos la medida creada como una columna a la tabla, y ahora podemos observar el
acumulado anual por meses.
Para poder hacer esto es necesario crear una tabla de meses que no esté integrada a nuestro
Modelo de Datos.
Crearemos de forma manual la tabla Meses, desde Inicio ir a la opción Especificar Datos,
Se abre una ventana para Crear Tabla, como nombres de columna indicaremos MesId y Mes.
Los valores para columna MesId, serán los números del 1 al 12, y los valores para la columna
Mes serán los nombres de los 12 meses. El nombre de la tabla será Meses. Procedemos a
cargar la tabla.
Agregamos un nuevo filtro en base a la columna Mes de la tabla Meses que acabamos de
crear. Se puede observar que se creará el filtro con los nombres de meses pero ordenados
alfabéticamente, para tener el orden correcto, tenemos que indicar que la columna Mes se
ordenará por la columna MesId.
El mes que se seleccione en el filtro “Mes” debe indicar el máximo mes para el cuál se va a
mostrar un valor acumulado. Y sino se tiene nada seleccionado entonces que muestre el
Acumulado para todos los meses del año.
Procederemos a crear una medida llamada Acumulado Dinamico, que inicialmente será
exactamente igual a la medida Acumulado Anual.
Acumulado Dinamico =
CALCULATE(
[Total Sales],
FILTER(
ALLSELECTED('Date'),
'Date'[MonthNo]<=MAX('Date'[MonthNo])
)
)
Agregamos la medida a la tabla y vemos que los valores de ambas columnas Acumulado Anual
y Acumulado Dinamico son iguales.
A continuación crearemos una nueva variable llamada “mes” donde guardaremos el valor
máximo de la columna MonthNo y colocaremos el nombre de la variable mes donde antes
teníamos la expresión MAX(‘Date[MonthNo]). Al actualizar se observa que el valor de la
medida Acumulado Dinamico se mantiene igual.
Ahora crearemos una variable llamada MesSeleccionado, que tome el valor seleccionado del
filtro de meses, para esto utilizaremos la función SELECTEDVALUE, que debe devolvernos la
columna MesId.
Al actualizar vemos que no devuelve ningún valor para la medida “Acumulado Dinamico”, esto
debido a que no tenemos ningún mes seleccionado y no hemos indicado una opción en caso
de que no se seleccione ningún mes.
Vamos a modificar la medida Acumulado Dinamico para que muestre el acumulado para todos
los meses cuando no se selecciona un mes en particular.
Para esto crearemos una nueva variable llamada maxMesSeleccionado, que traerá el valor
máximo de la columna MesId, y al momento de retornar el valor para la medida, agregaremos
una condición que verifique si el máximo mes seleccionado es igual a 12, en ese caso devolverá
el valor de la variable “acumulado” y si no lo es primero validará que la variable “mes” sea
menor o igual que la variable “MesSeleccionado”, para recién devolver el valor de
“acumulado”
Power BI permite crear roles que contengan filtros específicos para que determinados usuarios
sólo puedan visualizar la información que se encuentre definida por cada rol.
Primero se crean los roles y luego se asignan los usuarios que van a tener los permisos
especificados por cada rol.
La creación de los roles se realiza en Power BI Desktop, mientras que para agregar los usuarios
a cada rol se tiene que hacer desde el servicio web de Power BI.
Tenemos una página inicial con información de ventas y con un filtro por países.
Vamos a crear un rol llamado “Ventas USA”, para esto vamos desde el menú Modelado a la
opción Administrar Roles.
Agregamos el nombre del rol, en este caso será Ventas USA, ahora nos muestra el total de las
tablas existentes y al seleccionar una tabla en particular, en este caso Sales, aparece un menú
con la opción de Agregar Filtros y podemos seleccionar la columna por la cual queremos
agregar el filtro, en nuestro caso será por la columna “Country Name”
Para verificar la funcionalidad del rol, vamos a la pestaña Modelado y a la opción Ver como y
seleccionamos el nombre del rol creado:
Para poder dar los roles a otros usuarios tenemos que publicar el reporte:
Nos aparece la pantalla Row-Level Security y acá ya podemos agregar uno ó más usuarios por
rol seleccionado: