Una vez que ya sabemos como importar nuestros datos, PowerPivot nos ofrece la posibilidad de añadir columnas calculadas para mejorar la calidad de nuestro dato. Crear una columna calculada es muy sencillo y vamos a ilustrar este proceso.
En primer lugar he importado una vista de AdventureWorks (vSalesPerson) y me he quedado solo con un conjunto de columnas concreto. El nombre de mi tabla es vSalesPerson:
Me encuentro que el nombre de este personal de venta esta dividido en varias columnas:
– Title
– First Name,
– MiddleName
– Last Name
Nuestro objetivo es que una vez queramos hacer un análisis con estos datos, se nos muestre el nombre completo. Para eso podemos hacer una columna calculada que nos muestre el nombre concreto. Para eso, en la ultima columna de nuestra tabla de PowerPivot, tenemos la columna AddColumn. Esta columna esta esperando una expresión DAX para que la columna tome un valor. En este caso la logica será muy sencilla: Concatenar los nombres. Para eso nos situamos sobre la columna “AddColumn” y vamos al campo de formula:
Una primera aproximación sería la siguiente formula
=vSalesPerson[Title]&” “&vSalesPerson[FirstName]&” “&vSalesPerson[MiddleName]&” “&vSalesPerson[LastName]
Siendo:
El “=” nos marca el inicio de una expresión. Es necesario el “=” para escribir una expresión. Con tabla[campo] estamos haciendo referencia a una tabla en concreta y a un campo de esta. Así vSalesPerson[Title] se refiere a nuestra primera columna. El “&” nos sirve para concatenar cadenas de Texto. El resultado es el siguiente:
Como vemos hay espacios al principio del nombre. Podemos seguir refinando. DAX nos brinda multitud de funciones para realizar. Como podemos observar la columna a cambiado su nombre a CalculatedColumn1 y aparece una nueva columna “AddColumn”. Refinando de forma que no haya espacios innecesarios y con un formato correcto, la expresión nos queda:
=IF(ISBLANK(vSalesPerson[Title]),
IF(ISBLANK(vSalesPerson[MiddleName]),
vSalesPerson[FirstName]&” “&vSalesPerson[LastName],
IF(LEN(vSalesPerson[MiddleName])=1,vSalesPerson[FirstName]&” “&vSalesPerson[MiddleName]&”. “&vSalesPerson[LastName],vSalesPerson[FirstName]&” “&vSalesPerson[MiddleName]&” “&vSalesPerson[LastName])),
IF(ISBLANK(vSalesPerson[MiddleName]),
vSalesPerson[Title]&” “&vSalesPerson[FirstName]&” “&vSalesPerson[LastName],
IF(LEN(vSalesPerson[MiddleName])=1,vSalesPerson[Title]&” “&vSalesPerson[FirstName]&” “&vSalesPerson[MiddleName]&”. “&vSalesPerson[LastName],vSalesPerson[Title]&” “&vSalesPerson[FirstName]&” “&vSalesPerson[MiddleName]&” “&vSalesPerson[LastName])))
Este ejemplo nos da la idea de la potencia que podemos obtener con las columnas calculadas en PowerPivot. Renombramos nuestra columna calculada a CompleteName, para darle un nombre más amigable. Si montamos una PivotTable, el campo se nos añade a los valores disponibles
Nos vemos en proximos posts..
Referencias: