En anteriores versiones de PowerPivot, cuando teniamos una condición compleja, debiamos de anidar diferentes IF, de manera que cuando teniamos más de dos o tres condiciones, se hacia bastante tedioso escribir la expresión, cayendo facilmente en el error. En PowerPivot 2.0 tenemos la función Switch, que se comporta como en el resto de lenguajes de programación. Veamos la sintaxis

Novedades de PowerPivot en Denali (VIII): SWITCH

 

SWITCH

– Expresión: Expresión a evaluar

– Value1..ValueN: Valor que toma la expresión

– Result1..ResultN: Si la expresión toma el valor Value1 se devuelve Result1… y así sucesivamente

Pongamos el siguiente ejemplo

Novedades de PowerPivot en Denali (VIII): SWITCH

Imaginemos que dependiendo de la categoría, tenemos un cierto incremento en el precio base. Siendo:

Bebidas: 1,5

Panaderia: 2

Frutas: 3

Verduras: 4

De manera que nosotros, para calcular el precio final podríamos hacerlo con IFs anidados. La expresión quedaría (separada para verlo mejor)

=IF([Categoria]=”Bebidas”,

[Precio Base]*1.5,

IF([Categoria]=”Panaderia”,

[Precio Base]*2,

IF([Categoria]=”Frutas”,

[Precio Base]*3,

IF([Categoria]=”Verduras”,

[Precio Base]*4

)

)

)

)

 

Como vemos tenemos que anidar los IF y se complica cada vez que tenemos que mas condiciones. Con SWITCH queda mucho más limpio

=SWITCH([Categoria],
“Bebidas”,[Precio Base]*1.5,
“Panaderia”,[Precio Base]*2,
“Frutas”,[Precio Base]*3,
“Verduras”,[Precio Base]*4)

Y los resultados

Novedades de PowerPivot en Denali (VIII): SWITCH

Espero que sirva de ayuda. Nos vemos en próximas entregas  🙂

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

ScaleOut SSIS

Lo primero es saber que debemos esperar de ScaleOut, cuando se habla de Scale Out estamos hablando de la capacidad de un sistema o proceso para manejar una cantidad creciente de trabajo, y el potencial que tiene, es su capacidad de adaptarse para asumir el crecimiento del sistema o proceso.