Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Prácticas recomendadas para varias variables

Hola a todos,

Me gustaría publicar una pregunta general para saber si hay una mejor práctica definida cuando se deben considerar múltiples variables en algunas medidas.

Por ejemplo, actualmente utilizo un "doble interruptor" para calcular las ventas, porque el cliente quiere poder ver números con o sin IVA, y en moneda local o cantidad convertida. En este caso estamos cubriendo dos variables: IVA y Moneda. ¿Y si hay más variables? En ese caso, tendría que codificar 8/16/32 diferentes resultados posibles.
Un ejemplo de una medida con dos variables, donde en pantalla tengo dos segmentaciones de datos (_Conversion_Slicer[Conversión], _vat_slicer[vat]):

sales_full_date =
if(VALUES(_Conversion_Slicer[Conversion]) = "Local Currency",
Switch( TRUE(),
    VALUES(_vat_slicer[vat]) = "W/o VAT",Calculate(sum(dl_global_sell_outs_datamart[amount_excl_vat]),
        dl_global_sell_outs_datamart[close_date]<=MAX('Calendar'[Date]),
        dl_global_sell_outs_datamart[close_date]>=Min('Calendar'[Date])),
    VALUES(_vat_slicer[vat]) = "With VAT",  Calculate(sum(dl_global_sell_outs_datamart[amount]),
        dl_global_sell_outs_datamart[close_date]<=MAX('Calendar'[Date]),
        dl_global_sell_outs_datamart[close_date]>=Min('Calendar'[Date])),
    Blank()),

Switch( TRUE(),
    VALUES(_vat_slicer[vat]) = "W/o VAT",Calculate(sum(dl_global_sell_outs_datamart[amount_excl_vat_global_fx_chf]),
        dl_global_sell_outs_datamart[close_date]<=MAX('Calendar'[Date]),
        dl_global_sell_outs_datamart[close_date]>=Min('Calendar'[Date])),
    VALUES(_vat_slicer[vat]) = "With VAT",  Calculate(sum(dl_global_sell_outs_datamart[amount_global_fx_chf]),
        dl_global_sell_outs_datamart[close_date]<=MAX('Calendar'[Date]),
        dl_global_sell_outs_datamart[close_date]>=Min('Calendar'[Date])),
    Blank()))
 

Al tener "solo" dos variables, tengo que cubrir 4 resultados posibles, pero creo que ese es el límite, ya que con 3 variables, el número ya sube a 8 y no se siente como un diseño adecuado.


¡Gracias!

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Cuando se trata de múltiples variables en las medidas, es importante considerar la escalabilidad y la capacidad de mantenimiento del código. La codificación de todos los resultados posibles puede volverse rápidamente inmanejable y difícil de modificar a medida que cambian los requisitos o se introducen nuevas variables.

Un enfoque para manejar múltiples variables es usar un cálculo dinámico que pueda ajustarse en función de las selecciones del usuario. Por ejemplo, en lugar de codificar todos los resultados posibles, podría crear un cálculo que seleccione dinámicamente los campos apropiados en función de la selección del usuario. Esto podría lograrse utilizando una combinación de funciones SWITCH y SELECTEDVALUE.

Otro enfoque es utilizar una tabla de parámetros que contenga los valores posibles de cada variable y sus campos correspondientes. Esta tabla se puede utilizar para seleccionar dinámicamente los campos y valores apropiados para el cálculo. Este enfoque puede proporcionar más flexibilidad y escalabilidad, ya que se pueden agregar fácilmente nuevas variables a la tabla de parámetros sin necesidad de modificar el código.

En general, se recomienda utilizar un enfoque modular cuando se trata de cálculos complejos que involucran múltiples variables. Esto permite una mejor organización y mantenibilidad del código. Además, el uso de nombres de variables claros y descriptivos puede hacer que el código sea más legible y fácil de entender.

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.