power pivot

28
Power Pivot El complemento para Excel 2010: Power Pivot puede utilizarse para elaborar informes muy elaborados y eficientes de tablas dinámicas manejando millones de datos. También podremos vincular las tablas (de la ventana de Power Pivot), de manera que aprovecharemos estos vínculos para realizar informes con tablas dinámicas. Además, contiene un lenguaje de manipulación de expresiones DAX, con el que desarrollaremos números ejemplos. 1.1 SQL PARA POWER PIVOT Una herramienta incorporada a Excel 2007 fue Microsoft Query. Dicha herramienta permite hacer consultas sobre las tablas (vinculándolas) con un sublenguaje de SQL. Con Power Pivot podremos llevar a cabo cualquier consulta de las realizadas con Microsoft Query (utilizando en algunos casos el lenguaje DAX). Un ejemplo lo tenemos en la consulta que implica a 5 tablas de la base de datos Neptuno.accdb: Categorías, Clientes, DetallesDePedidos, Pedidos y Productos. Ver figura 1.1 para observar un detalle de la importación de las tablas (y las relaciones entre ellas) a

Upload: max-daniel

Post on 25-Nov-2015

271 views

Category:

Documents


1 download

TRANSCRIPT

  • Power Pivot

    El complemento para Excel 2010: Power Pivot puede utilizarse para elaborar informes muy

    elaborados y eficientes de tablas dinmicas manejando millones de datos.

    Tambin podremos vincular las tablas (de la ventana de Power Pivot), de manera que

    aprovecharemos estos vnculos para realizar informes con tablas dinmicas.

    Adems, contiene un lenguaje de manipulacin de expresiones DAX, con el que

    desarrollaremos nmeros ejemplos.

    1.1 SQL PARA POWER PIVOT

    Una herramienta incorporada a Excel 2007 fue Microsoft Query. Dicha herramienta

    permite hacer consultas sobre las tablas (vinculndolas) con un sublenguaje de SQL. Con

    Power Pivot podremos llevar a cabo cualquier consulta de las realizadas con Microsoft

    Query (utilizando en algunos casos el lenguaje DAX).

    Un ejemplo lo tenemos en la consulta que implica a 5 tablas de la base de datos

    Neptuno.accdb: Categoras, Clientes, DetallesDePedidos, Pedidos y Productos. Ver figura

    1.1 para observar un detalle de la importacin de las tablas (y las relaciones entre ellas) a

  • partir de la ventana de Power Pivot.

    En la misma tendremos 5 pestaas (una por cada tabla importada).

    Para incorporarlas a dicha ventana lo nico que hemos debido hacer es hacer clic sobre el

    botn Desde bases de datos de la pgina Principal de Power Pivot y seguir los pasos

    indicados.

    Podemos manipular las relaciones entre las tablas desde la pestaa Diseo con el botn

    Administrar relaciones.

    Una de las diferencias clave entre realizar consultas con Microsoft Query y Power Pivot es

    que cualquier consulta que podamos hacer con Access, puede llevarse a Power Pivot, es

    decir, SQL para Power Pivot incluye a SQL para Access.

    As, la clusula TOP 1 que permite quedarnos con los primeros registros en una consulta

    que cumplan una condicin, no funciona en una consulta con Microsoft Query.

    Sin

    embargo, observemos la figura 1.2 donde se ha ejecutado la consulta:

  • SELECT TOP 1 Pedidos.IdPedido, Pedidos.IdCliente, Pedidos.IdEmpleado,

    Pedidos.FechaPedido, Pedidos.FechaEntrega, Pedidos.FechaEnvo,

    Pedidos.FormaEnvo, Pedidos.Cargo, Pedidos.Destinatario,

    Pedidos.DireccinDestinatario, Pedidos.CiudadDestinatario,

    Pedidos.ReginDestinatario, Pedidos.CdPostalDestinatario,

    Pedidos.PasDestinatario, Clientes.N ombreCompaa, Clientes.Direccin,

    Clientes.Ciudad, Clientes.Regin, Clientes.CdPostal, Clientes.Pas

    FROM Clientes INNER JOIN Pedidos ON

    Clientes.IdCliente=Pedidos.IdCliente;

    Para ejecutar esta consulta bastar con que hagamos de nuevo la importacin de la base de

    datos pero Neptuno y escoger la segunda opcin en la ventana de dilogo (la de ejecutar

    consulta). Copiaremos la consulta anterior en la ventana y obtendremos una pestaa

    (cnsulta) en la ventana de Power Pivot con el resultado de la misma (un nico registro).

    Dicha consulta es el resultado de la combinacin entre las tablas Clientes y Pedidos con el

    vnculo IdCliente, mostrndose una serie de campos y quedndonos con el primer registro

    de la tabla derivada obtenida.

    1.1.1 Ejemplo de consulta

    Ahora pretendemos mostrar cmo realizar informes con tablas dinmicas desde la ventana

    de PowerPivot, detallando algunos de los aspectos ms relevantes de esta tcnica.

    Desde una base de datos del arbolado urbano de Sevilla podremos ejecutar la consulta:

    familias de rboles con ms de 60 ejemplares replantados entre 1 -1-1981 y el 2-2-2002.

  • La consulta requiere la inclusin de las tablas rboles y replantes (con el campo comn

    rbol que va a representar el vnculo).

    Desde la ventana de Power Pivot nos vamos a Desde bases de datos y seguimos los pasos

    indicados. Obtendremos la figura 1.3.

    Cuando vamos a importar datos de una base de datos en Power Pivot nos aparecer

    previamente a la eleccin de las tablas la ventana de dilogo de la figura 1.4.

    Como hemos visto en el apartado anterior, si elegimos la segunda opcin podremos escribir

    una expresin en SQL y obtener la tabla derivada de la consulta en la ventana PowerPivot

    (esta tcnica se repite con ciertas limitaciones si ejecutamos Microsoft Query).

    Estos tipos de operaciones tienen suma relevancia si consideramos Excel como parte del

    sistema de informacin (transaccional), donde vamos a ejecutar transacciones a partir de los

    datos almacenados en la base de datos (piense en obtener un informe cualquiera a partir de

    los datos almacenados en la base de datos).

    Otra opcin es disear la consulta en Access (con el entorno QBE incorporado) y despus

    importar los datos de la consulta desde la ventana de Power Pivot.

    El resto de pasos son inmediatos:

    1. Haremos clic en PivotTable de la ficha de la ficha Pgina principal.

    2. Escogemos PivotTable.

    3. Agrupamos en Etiquetas de fila por familia, en valores la suma de nmero y en filtro la fecha (observar que las tablas estn ya vinculadas por el campo comn rbol).

  • 4. Ahora procederemos a filtrar las fechas, de manera que no haya ninguna fuera del

    intervalo establecido.

    5. Por ltimo hacemos una copia de la tabla dinmica en otro lugar de la hoja, convertimos

    el rango en tabla y en el filtro del nmero total de replantes establecemos la condicin de

    que sea mayor que 60 (Figura 1.4-a).

  • 1.2 VINCULANDO TABLAS

    Es importante notar que Excel proporciona un espacio de trabajo, y que las tablas de Power

    Pivot slo contienen los datos que se han importado. Por lo tanto, Power Pivot es, sobre

    todo, un entorno para importar y relacionar datos de muy diversas fuentes (ver figura 1.5).

    Para comprobar lo que acabamos de decir, en el siguiente ejemplo vamos a suponer que los

    datos se encuentran en distintas hojas de un libro Excel el cual puede estar abierto o no.

  • Como no vamos a abrir

    el libro, partiremos de un libro en blanco y hacemos clic en el botn PowerPivot de la ficha

    PowerPivot. Importaremos con el botn otras fuentes las tablas contenidas en las hojas

    Asistencia y Trabajos (las tablas tienen que tener el mismo nmero de filas). Ver figura 1.1.

    Supongamos ahora que queremos realizar la siguiente consulta: Promedio del tanto por

    ciento de tiempo de asistencia que le falta por completar a los alumnos con una nota

    superior o igual a 8.

    Seleccionamos la columna de los nombre ([F1]) en Asistencia y creamos la relacin (uno a

    uno) con la tabla Tabln (ver figura 1.7).

    Para ello haremos clic en crear relacin del grupo Relaciones en la ficha Diseo.

    Como adelanto de lo que estudiaremos ms adelante, podemos visualizar en la columna

    calculada de Asistencia el valor de una columna de la tabla relacionada. Para ello

    utilizaremos la funcin RELATED de DAX.

    En concreto escribiremos en cualquier celda de la columna calculada (la primera libre a la

    derecha en la ventana de PowerPivot) la expresin = related(Trabajos[F11]). Adems

    podremos aadir a dicha columna el filtro que el contenido de la columna calculada sea

    superior o igual a 8, resultando la Figura 1.8.

    Para obtener la consulta, bastar con que copiemos el contenido de Asistencia en una hoja

    Excel, convirtamos el rango en tabla y le aadamos una fila de totales. A continuacin

    procederemos a calcular el promedio de la columna calculada (ver figura 1.9).

  • Por lo tanto el % buscado es 8,44 %, lo cual indica que los alumnos con notas altas han

    cubierto prcticamente el total de asistencia a clase.

    Otra manera de obtener el mismo resultado es generar una tabla dinmica con el botn

    PivotTable del grupo Informes de la ficha Pgina principal. Los campos sern F1 y F63 de

    Asistencia. En el filtro incluiremos la columna calculada y filtraremos por los valores

    superiores o iguales a 8. En el total se obtendr por defecto la suma. Cambiaremos la

    funcin resumen a promedio y le daremos el formato de %.

  • Un detalle importante es que si vamos a realizar una tabla dinmica sin antes filtrar los

    datos desde la ventana de Power Pivot no ser necesario vincular las tablas ya que se

    detecta de forma automtica la relacin (deber estar activado el botn Deteccin desde

    Power Pivot).Esto se debe a que el complemento Power Pivot dispone de unos algoritmos

    que activan de forma automtica dichas relaciones.

  • 1.3 MS CONSULTAS

    En la ventana de PowerPivot, entre dos tablas slo puede establecerse una relacin (cosa un

    tanto limitada ya que hay casos en que existen dos relaciones).

    Por otro lado, la relacin estudiada en el ejemplo anterior es del tipo 1:1.

    Otro caso interesante es un ejemplo en el que la relacin sea del tipo 1:n (muy comn en

    bases de datos. Las del tipo n:m se reducen a dos del tipo 1:n y 1:m).

    Si volvemos al ejemplo de la pequea organizacin visto en los ejercicios captulos

    anteriores, un empleado puede tener varios telfonos. Esta relacin es del tipo 1:n. P

    odemos plantearnos la consulta: cul es el sueldo del empleado con ms telfonos?

    Tendremos importadas las tablas para empleados y telfonos. No ser necesario vincularlas

    ya que al importarlas de la base de datos tambin se dispone del vnculo (el campo

    empleado). Despus haremos el informe de tabla dinmica que se muestra en la figura 1.10

    (previamente ordenaremos de mayor a menor por el campo Recuento de TLFN).

    1.4 GRFICOS DINMICOS EN POWER PIVOT

    En ejemplos y ejercicios vistos anteriormente nos hemos planteado mostrar varios grficos

    obtenidos a partir de tablas dinmicos, con el fin de comparar resultados.

    Esta es una cuestin que se ha resuelto en el complemento para Excel 2010 Power Pivot

    incorporando al botn de Tabla dinmico (o PivotTable desde la ventana PowerPivot), otras

    opciones antes de generar la tabla dinmica.

    En concreto, en la Figura 4.13 tenamos un grfico y un informe de tabla dinmica. All los

    incorporamos uno detrs de otro seleccionado los campos del informe para hacer el grfico.

    Ahora podemos Vincular la tabla a la ventana PowerPivot y despus escoger desplegando

    el botn Tabla dinmica del grupo Informe de la Cinta PowerPivot y escogiendo Grfico y

    tabla (horizontal). Obteniendo un resultado similar al de la figura antes citada (ver Figura

    1.12).

    Observar que al escoger dicha opcin se le crear una hoja para la tabla y otra para la tabla

    asociada al grfico (donde deber aadir los campos correspondientes a las etiquetas de fila

  • y Valor).

    Otro ejemplo ms potente si cabe es el que tendramos al retomar la figuras 4.14 (a y b).

  • Con el complemento Power Pivot es posible aadir de golpe 4 grficos correspondientes a

    sendas tablas dinmicas.

    El proceso es similar al explicado en este apartado y el resultado lo tenemos en la Figura

    1.13.

    1.5 LENGUAJE DAX

    Es hora de que entremos de lleno en el lenguaje de manipulacin de expresiones que viene

    con Power Pivot.

    Dicho lenguaje lo podemos utilizar tanto en las columnas calculadas de las tablas de la

    ventana PowerPivot (como ya hemos podido comprobar en un apartado anterior), como en

    informes de tablas dinmicas generadas a partir de Power Pivot.

    Mientras que en una tabla dinmica ordinaria aadir un campo calculado tiene una tcnica

    determinada (presente desde las primeras versiones de Excel), con las tablas dinmicas de

    Power Pivot esto lo haremos mediante el botn Agregar medida de la cinta Power Pivot.

    El nombre de DAX es un acrnimo de Expresiones de Anlisis de Datos.

    La sintaxis es similar a las de las frmulas de Excel slo que incluye muchas funciones

    nuevas.

    Otros detalles importantes son que las funciones DAX no trabajan con rangos sino con

  • tablas y columnas calculadas, y que los datos se manejan por un motor de memoria

    altamente optimizado, por lo que las bsquedas son bastante rpidas y manejan

    cmodamente tablas con millones de filas (tenga en este caso en cuenta las dificultades para

    cargarse los datosincrustados de Power Pivot al abrir el correspondiente libro Excel).

    Las frmulas con DAX presentan los siguientes aspectos relevantes:

    * Hay funciones que devuelven una tabla con lo que puede utilizarse este resultado para

    calcular valores para tablas o columnas completas (por esta razn en DAX son muy

    comunes las expresiones anidadas).

    * Algunas funciones proporcionan lo que se llama inteligencia de tiempo. Esto permite

    que los clculos pueden referirse a intervalos de fechas significativos, pudindose comparar

    los mismos para periodos diferentes de tiempo.

    * El correcto funcionamiento de una funcin DAX exige que no pueden devolver ningn

    valor errneo para todo el dominio, ya que se aplican a columnas o tablas.Para conseguir

    esto muchas veces nos veremos obligados a utilizar funciones como IFERROR, que

    establecen el valor que debe devolver la funcin si hay algn error.

    1.6 FRMULAS EN TABLAS DINMICAS CON POWER PIVOT

    Una medida es una frmula creada especficamente para una tabla dinmica procedente de

    datos de la ventana Power Pivot (o para una columna calculada en una tabla de la ventana

    Power Pivot).

    Las medidas estn basadas en funciones de agregacin simples (media y suma, entre otras)

    o en funciones del lenguaje DAX.

    Una medida se usa en la zona Valores de la tabla dinmica. Tembin podemos crear una

    columna calculada desde la ventana de Power Pivot.

    Despus de agregar una tabla dinmica abriremos el cuadro de dilogo Configuracin de

    medida.

    Las agregaciones estndar se crean igual que desde Excel: arrastrando campos hasta la zona

    de Valores y eligiendo con el botn derecho del ratn el mtodo de agregacin.

    La medida que creemos se puede utilizar en ms de una tabla o grfico dinmicos. El

    nombre debe ser nico en un mismo libro y no debemos utilizar el nombre de alguna

    columna calculada.

    Para manejar estas medidas desde una tabla dinmica procederemos a crearla a partir del

    botn PivotTable de la ventana de Power Pivot.

    Como ejemplo sencillo se obtiene con una tabla donde tenemos el sueldo de trabajadores de

    una organizacin para diferentes provincias, y deseamos plantearnos el sueldo medio pero

  • aumentado en un 5% (suponemos que hemos hecho clic sobre el botn Vincular tabla de la

    cinta de PowerPivot con la tabla de la hoja Original).

    Una vez creada la tabla dinmica nos colocamos dentro de la misma y procedemos a hacer

    clic en Nueva medida dentro del grupo Medidas de la ficha PowerPivot. Ahora procedemos

    a aumentar en un 5% el sueldo, resultado la Figura 1.14.

    1.7 FUNCIONES DAX

    1.7.1 Funciones de texto

    Permiten manipular cadenas de texto obteniendo diferentes resultados que pueden facilitar

    muchas de nuestras consultas.

    .

    1.7.1.1 FUNCIN CONCATENATE

    Admite dos argumentos. Se utiliza para unir cadenas. Los argumentos pueden ser textos o

    nmeros.

    En el ejemplo (Figura 1.15) que se muestra la combinacin de los campos de la tabla2.

    Como CONCATENATE slo admite dos argumentos ha habido que hacer una

    combinacin en el segundo argumento (que adems nos sirve como ejemplo de expresin

    anidada).

    =concatenate("Nombre: ",concatenate([Nombre], concatenate("...Salario:

  • ",concatenate([salario],concatenate(" ", concatenate("...Fecha de

    contratacin: ",concatenate([Fecha de contra],""))))))).

    De esta

    manera podremos hacer un informe de tabla dinmica con el nmero de domicilios de cada

    empleado y visualizar en la misma el resto de informacin de dicho empleado (ver Figura

    1.15-a).

    1.7.1.2 FUNCIN EXACT

    Admite dos argumentos. Comprueba si dos columnas contienen los mismos valores (para la

    comparacin convierte los argumentos en textos).

  • En una

    columna calculada donde FechaPedido debe ser diferente de FechaEntrega habr que

    incluir la frmula:

    =if(not(exact(Pedidos[FechaPedido],Pedidos[FechaEntrega])),"FALSO","Fech

    as incorrectas")

    1.7.1.3 FUNCIN LEFT

    Devuelve un nmero de caracteres especificados empezando por el principio de una

    cadena.

    Se suele utilizar para crear un identificador con dos o ms campos de la tabla. Recordemos

    que un identificador es un campo en el que no hay dos filas con el valor valor de dicho

    campo igual.

    Por ejemplo podemos tener en una columna calculada:

    =concatenate(left('figura 17'[matricula],1),

    concatenate(left([aoVenta],4), left([nombreDueo],6)))

    Que es un identificador para la tabla ya que el nmero de filas con el valor distinto en esa

    columna calculada es el nmero total de filas de la tabla.

    =countrows(distinct('figura 17'[CalculatedColumn1]))

    1.7.1.4 FUNCIN LEN

    Devuelve la longitud de una cadena.

  • Podemos sumar las longitudes de uno o ms campos y averiguar cunto ocupan. Con este

    dato podramos optimizar la memoria reservada para la tabla.

    =LEN([NOMBRE])+LEN([APELLIDOS])

    1.7.1.5 FUNCIN MID

    Devuelve una cadena de la de entrada a partir de una posicin y con una longitud

    determinada.

    =MID('figura 17'[nombreDueo],4,6)

    Devolver los caracteres desde el cuarto hasta el dcimo del cliente.

    1.7.1.6 FUNCIN REPLACE

    Convierte un texto reemplazando parte de l por parte de otro texto.

    Deberemos determinar en qu posicin del texto comienza a reemplazarse un nmero

    determinado de caracteres del texto nuevo.

    En el ejemplo mostrado en el apartado anterior sustituimos los 3 ltimos caracteres por esa

    subcadena ms espacio ES (para significar que son matrculas de espaolas):

    =REPLACE('figura 17'[matricula],len('figura 17'[matricula])-

    2,6,concatenate(RIGHT('figura 17'[matricula],3)," ES"))

    1.7.1.7 FUNCIN REPT

    Devuelve una cadena que se obtiene repitiendo una de entrada un nmero de veces

    determinado.

  • Por ejemplo

    podemos hacer que si la longitud de un campo es considerada corta (menos de 12

    caracteres), se repita dos veces y en otro caso quede igual.

    =if(len('figura 17'[nombreDueo])

  • Devuelve la posicin donde se encuentra una cadena dentro de otra. Para asegurarnos de

    que devuelve un resultado correcto debemos utilizar la funcin IFERROR:

    =iferror(SEARCH(" ",[nombreDueo]), -1)

    Con este ejemplo obtendremos la posicin en que comienza el nombre del dueo del

    vehculo (o -1 en otro caso).

    Otro ejemplo de utilizacin sera utilizar la funcin MID para obtener el apellido del dueo

    del vehculo:

    =mid([nombreDueo],

    iferror(search(" ", [nombreDueo]),1)+1,len([nombreDueo]))

    1.7.1.10 FUNCIN SUBSTITUTE

    Cambia en una cadena una parte de la misma por otra segn los parmetros de entrada. Un

    ejemplo de utilizacin sera cambiar el espacio en los nombres de dueos por otro signo,

    pongamos puntos suspensivos.

    =SUBSTITUTE([nombreDueo]," ","...")

    1.7.1.11 FUNCIN TRIM

    Quita todos los espacios en un texto salvo el espacio que separa a las palabras. Puede ser

    muy til para eliminar espacios por ejemplo al principio de una cadena que se han

    introducido errneamente.

    =TRIM(" ESTO ES UN EJEMPLO")

    Devuelve ESTO ES UN EJEMPLO, sin el espacio al principio.

    1.7.1.12 FUNCIN VALUE

    Una cadena que es un nmero la convierte en su valor numrico (con lo que se puede

    operar con ella).

    =VALUE("22")+1

    Devuelve el nmero 23.

    Un ejemplo de aplicacin lo tendramos en una tabla donde se tiene un campo (comentarios

    Infopath) que contiene un texto que termina en la nota asignada en un trabajo al alumno. si

    suponemos que esta nota est formada por tres caracteres (la parte entera, el punto decimal

    y la parte decimal con un decimal), la siguiente funcin nos asegurara en la

    columnacalculada la nota final del alumno:

  • =iferror(value(mid([f4], iferror(search("=", [f4])+1, 1), 2)),0)

    Ver figura 1.18, de esta manera se asegura el profesor de que la nota puesta en el trabajo

    (de Infopath) coincide con la del comentario.

    1.7.2 Funciones de informacin

    Examina el tipo de la informacin almacenada en una celda.

    1.7.2.1 FUNCIN ISERROR

    Si la informacin que contiene la celda es errnea devuelve TRUE. Uno de los ejemplos

    ms tpicos es que se operen con nmeros y el contenido de la celda sea un texto. La lnea

    siguiente, en vez de filtrar antes el contenido para aumentar la nota de teora un 5%, utiliza

    ISERROR para realizar el clculo correcto:

    =IF(ISERROR([f10]*1.05),0,[f10]*1.05)

    Observar que el decimal es con punto (en vez de coma como en Excel).

    1.7.2.2 FUNCIN ISBLANK

    Si la celda est en blanco devuelve TRUE. Puede ser muy til cuando queramos devolver

    un valor determinado si la celda se ha quedado en blanco (por ejemplo un valor por

    defecto). En el ejemplo visto para la nota del alumno en Infopath:

    =if(isblank([f4]), "No podemos saber nada del alumno en infopath",

    concatenate([f5],""))

    1.7.2.3 FUNCIN ISLOGICAL

    Si la celda contiene un valor lgico devuelve TRUE.

  • 1.7.2.4

    FUNCIN ISNONTEXT

    Si la celda no contiene un texto (en blanco no es un texto) devuelve TRUE. Sera

    equivalente a que el contenido fuera o blanco o lgico o nmero.

    1.7.2.5 FUNCIN ISNUMBER

    Si la celda no contiene un nmero devuelve TRUE.

    1.7.2.6 FUNCIN ISTEXT

    Si la celda no contiene un texto devuelve TRUE.

    1.7.3 Funciones lgicas

    Examina el tipo de la informacin almacenada en una celda.

    1.7.3.1 FUNCIN AND

    Admite dos argumentos y devuelve TRUE en el caso de que ambos sean TRUE.

    =if(and([PasDestinatario]="Alemania",[Cargo]>12)," Buen cliente

    alemn","No es alemn o no es buen cliente")

    De esta manera, podemos filtrar a los buenos clientes alemanes (hacen un pedido superior

    12 ).

  • Para este ejemplo y siguientes ver Figura 1.19.xlsx.

    1.7.3.2 FUNCIN OR

    Admite dos argumentos y devuelve TRUE en el caso de que uno de ellos sea TRUE.

    =if(or([PasDestinatario]="Alemania",[Cargo]>12),"Es alemn o es buen

    cliente","no es alemn y no es buen cliente")

    De esta manera, podemos filtrar a los alemanes o los que hacen un pedido superior 12 .

    1.7.3.3 FUNCIN IF

    Admite tres argumentos y devuelve el segundo si el primero es TRUE y el tercero en otro

    caso.

    Como ejemplo tenemos los de los dos apartados anteriores.

    1.7.3.4 FUNCIN IFERROR

    Admite dos argumentos y devuelve el primero si no se produce un error y el segundo en

    otro caso.

    Ya hemos visto algn ejemplo en apartados anteriores (ver apartado referente a la funcin

    VALUE).

    1.7.3.5 FUNCIN FALSE

    Es siempre FALSE.

    Permite dar un valor falso en el caso que no sea cierto.

    =if([PasDestinatario]="alemania",true,false)

    De esta manera obtendremos FALSE si no se trata de un cliente alemn (observe que no se

    distingue entre maysculas y minsculas en la comparacin con la cadena).

    1.7.3.6 FUNCIN TRUE

    Es siempre TRUE.

    Como ejemplo valdra el ltimo dado.

    1.7.3.7 FUNCIN NOT

  • Es TRUE si el argumento es FALSE y FALSE en otro caso.

    En el apartado correspondiente a la funcin EXACT tenemos un ejemplo.

    1.7.4 Algunas funciones matemticas

    Permiten manipular los datos numricos devolviendo las expresiones de funciones

    matemticas habituales.

    1.7.4.1 FUNCIN FLOOR

    Redondea un valor decimal.

    =FLOOR([cargo],.5)

    Devuelve el cargo hecho en el pedido al cliente redondeando la parte decimal al ltimo de

    0,5 ms prximo.

    1.7.4.2 FUNCIN RAND

    Devuelve un nmero real aleatorio mayor o igual a 0 y menor que 1.

    =RAN()

    Puede ser muy til si en alguna tabla precisamos de un nmero aleatorio.

    Si se quiere que el nmero devuelto sea mayor o igual a c y menor que d bastar con que

    obtengamos:

    =RAND()*(d-c)+c

    1.7.4.3 FUNCIN RANDBETWEEND

    =RANDBETWEEN(c,d)

    Si se quiere que el nmero devuelto est comprendido entre c y d, ambos inclusive. En este

    caso el valor devuelto es un nmero entero.

    1.7.4.4 FUNCIN QUOTIENT

    =QUOTIENT(c,d)

    Parte entera de la divisin de c entre d. si el denominador es 0 habr que utilizar las

    funciones ISERROR o IFERROR.

    1.7.4.5 FUNCIN ROUND

  • =ROUND(c,d)

    Redondea c al nmero de dgitos indicados en d.

    Si d es 0 se queda en el redondeo con la parte entera.

    1.7.4.6 FUNCIN ROUNDDOWN

    Realiza el redondeo hacia abajo.

    1.7.4.7 FUNCIN ROUNDUP

    Realiza el redondeo hacia arriba.

    Si el decimal d+1 es 5 los tres redondeos son equivalentes.

    1.7.4.8 FUNCIN SING

    Determina el signo del argumento.

    Los valores devueltos son 1, si es positivo, 0 si es 0 y -1 si es negativo.

    1.7.4.9 FUNCIN SUM

    Suma los valores de una columna.

    Un ejemplo lo tenemos si en Figura 1.19.xlsx hacemos en una columna calculada:

    =SUM([cargo])

    1.7.4.10 FUNCIN SUMX

    Permite realizar la misma operacin que con la operacin SUM pero especificando una

    expresin que se aplica a una tabla, de manera que pueden, por ejemplo, filtrarse filas antes

    de realizar el clculo.

    =SUMX(filter('pedidos',[PasDestinatario]="alemania"),[cargo])

    En una columna calculada de Figura 1.19.xlsx hemos obtenido la suma de los cargos para

    los pedidos realizados slo por clientes alemanes.

    La funcin FILTER la veremos en funciones de filtro.

    Observemos que esto equivale a un informe de tabla dinmica donde ponemos el cliente en

    equitecas de fila, el cargo en valores y el pas del destinatario en el filtro (o como

    segmentacin) con la consicin de que sea Alemania.

  • 1.7.5 Funciones de filtro

    Permiten manipular los datos utilizando diferentes contextos de manera que los clculos

    sean mucho ms dinmicos que utilizando frmulas de Excel. Aqu veremos algunas.

    1.7.5.1 FUNCIN DISTINCT

    Puede aplicrsele a una tabla o una columna de una tabla. Permite obtener, por ejemplo, el

    nmero de filas de la tabla que contienen un valor distinto en una columna.

    El ejemplo lo hemos visto en el apartado correspondiente a la funcin LEFT.

    1.7.5.2 FUNCIN ALL

    Cuando tenemos aplicado uno o ms filtros, cualquier funcin DAX obtiene la expresin

    que coloquemos en una columna calculada (o en una medida de un informe de tabla

    dinmico proveniente de los datos de la ventana de Power Pivot), respetando estos filtros.

    Con la funcin ALL se realiza el clculo sin tener en cuenta diferentes filtros.

    Por ejemplo ALL(tabla) permite devolver la tabla sin filtros con lo que podremos hacer

    clculos globales en una expresin anidada.

    En la figura 1.20 encontramos un ejemplo donde se ha introducido la medida ventas totales:

    SUMX(FactSales, FactSales[SalesAmount])/SUMX(ALL(FactSales),

    FactSales[SalesAmount])

    Este clculo puede encontrarse en la tabla dinmica de la hoja Hoja4 del libro Figura

    1.20.xlsx.

    En dicha medida (que se arrastra a Valores de la tabla dinmica, se calcula el tanto por

  • ciento (se escoger el formato de celda % con dos decimales) de las ventas por ao y

    categora.

    1.7.5.3 FUNCIN ALLNOBLANKROW

    Se utiliza para filtrar las filas en blanco de una tabla. As, si tabla1 tiene 10 filas y 1 en

    blanco la expresin:

    = allnoblankrow(tabla1)

    Devuelve 9.

    1.7.5.4 FUNCIN CALCULATE

    Evala una expresin en un contexto que puede verse modificado por una serie de filtros:

    As la expresin:

    =SUM(FactSales[SalesAmount])/calculate(SUM(FactSales[SalesAmount] ),

    ALL(FactSales))

    Es equivalente a la vista en el apartado de la funcin ALL. De esta manera todos los filtros

    que contengan CalendarYear o ProductCategory no afectan al resultado.

    1.7.5.5 FUNCIN CALCULATETAB LE

    Evala una expresin de tabla en un contexto que puede verse modificado por una serie de

    filtros:

    As la expresin:

    =SUMX(CALCULATETABLE(FactSales, DimDate[CalendarYear]=2009),

    [SalesAmount])

    De esta manera obtenemos el total de ventas en el ao 2009 (ver libro Figura 1.20.xlsx).

    1.7.5.6 FUNCIN EARLIER

    Cuando se escribe una expresin en una columna calculada de la ventana de Power Pivot,

    sta se va evaluando para cada fila (como si de un bucle se tratase). La ltima en calcular es

    la fila del final de la tabla.

    La funcin EARLIER evala el valor de la celda de la fila actual de una columna:

    As, la expresin:

  • = COUNTROWS(FILTER(DimPromotion,

    EARLIER(DimPromotion[DiscountPercent])