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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
mo_jo_jo
Frequent Visitor

Totales en blanco al usar SWITCH, parámetros What-if y tablas virtuales

Hola

Hemos detectado un problema desconocido.

He configurado 12 parámetros hipotéticas, uno para cada mes del año, que me permiten cambiar los valores de horas de facturación de una columna. Los parámetros utilizan la medida [Predicción - FTE - Valor de enero] dentro de la fórmula.

He creado una sentencia SWITCH, que funciona a nivel de mes. Pero en el nivel total, no importa lo que intente, el total no muestra ningún valor. Código DAX que se muestra a continuación.

FTE Change - External Hours (MSc) = // MSc - Monthly Scenarios. Year = 2020
VAR CurrentSelection = SELECTEDVALUE ( 'Date'[Fiscal Month Year] )
VAR _ForecastFTE = CALCULATE(
    AVERAGE( 'Budget - BoY Forecast KPIs'[Value] ),
    'Budget - BoY Forecast KPIs'[Sub-Category] = "Number of employees, FTE"
)
VAR _BudgetedWorkedHrsIncOvertime =
    CALCULATE (
        SUM ( 'Budget - BoY Forecast KPIs'[Value] ),
        'Budget - BoY Forecast KPIs'[Sub-Category] = "Worked hours incl overtime"
    )
VAR _BudgetedInternalHours =
    CALCULATE (
        SUM ( 'Budget - BoY Forecast KPIs'[Value] ),
        'Budget - BoY Forecast KPIs'[Sub-Category] = "Internal hours"
    )
VAR _Budgeted_HrsforOneFTEmployeeinPeriod = DIVIDE( _BudgetedWorkedHrsIncOvertime, _ForecastFTE )
VAR _SwitchLogic = SWITCH (
        TRUE(),
        CurrentSelection = "Jan 2020", (( _ForecastFTE + [Prediction - FTE - Jan Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours,
        CurrentSelection = "Feb 2020", (( _ForecastFTE + [Prediction - FTE - Feb Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Mar 2020", (( _ForecastFTE + [Prediction - FTE - Mar Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Apr 2020", (( _ForecastFTE + [Prediction - FTE - Apr Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "May 2020", (( _ForecastFTE + [Prediction - FTE- May Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Jun 2020", (( _ForecastFTE + [Prediction - FTE - Jun Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Jul 2020", (( _ForecastFTE + [Prediction - FTE - Jul Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Aug 2020", (( _ForecastFTE + [Prediction - FTE - Aug Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Sep 2020", (( _ForecastFTE + [Prediction - FTE - Sep Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Oct 2020", (( _ForecastFTE + [Prediction - FTE - Oct Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Nov 2020", (( _ForecastFTE + [Prediction - FTE - Nov Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours ,
        CurrentSelection = "Dec 2020", (( _ForecastFTE + [Prediction - FTE - Dec Value] ) * _Budgeted_HrsforOneFTEmployeeinPeriod) - _BudgetedInternalHours 
    )
VAR _TotalLevel = ADDCOLUMNS( SUMMARIZE( 'Date', 'Date'[Fiscal Month Year] ), "Month Totals", _SwitchLogic )

RETURN IF(
    HASONEVALUE( 'Date'[Fiscal Month Year] ),
    _SwitchLogic,
    SUMX( _TotalLevel, [Month Totals] )
)

En la superficie, creo que la fórmula en el nivel total debe estar haciendo algo "fácil" e iterando a través de cada mes de la tabla virtual RESUME y asociando el resultado mensual SWITCH, pero claramente eso no está sucediendo por cualquier razón 🙁
¿Puede alguien sugerir amablemente cuál podría ser el principio DAX que me falta y cómo podría ser capaz de arreglar esto?


Muy apreciado.

Switch - Not playing nice 1.PNGCambiar fórmulaSwitch - Not playing nice 2.PNGFila total en blanco

5 REPLIES 5
Greg_Deckler
Super User
Super User

Esto parece un problema de totales de medida. Muy común. Vea mi post al respecto aquí: https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376

Además, esta medida rápida, medida totales, la palabra final debe obtener lo que necesita:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Power BI Cookbook Third Edition (Color)

DAX is easy, CALCULATE makes DAX hard...
amitchandak
Super User
Super User

Normalmente, debe resumir en un nivel determinado. para tal cálculo

sumx(summarize(table, table[Month], "_sum",[measure]),[_sum])

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here

Hola amitchandak

Creo que eso es lo que he tratado de lograr, pero la última parte ( [_sum] en su ejemplo) es lo que no está funcionando.

littlemojopuppy
Community Champion
Community Champion

Esto parece demasiado complicado. ¿Es posible reestructurar el modelo de datos para que no tenga que crear 12 parámetros diferentes y tener tantas condiciones en la instrucción SWITCH? ¿Posiblemente incluyendo el número de horas facturables en la tabla de fechas por día? ¿O posiblemente otra tabla con horas facturables por mes con una relación con la tabla de fechas?

Hej littlemojopuppy

Gracias por la respuesta.
El objetivo de la tarea era permitir a los usuarios modificar la tasa FTE como deseen, antes de que se multiplique a las otras horas.
Este fue mi primer ejercicio de este tipo con Power BI, por lo que posiblemente podría haberse hecho de manera diferente. Hasta ahora no me he encontrado con una manera que permita a los usuarios hacer eso sin parámetros de qué pasaría sin ser individuales para cada mes.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors