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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

¿Cómo mantengo una columna en el contexto del filtro y realizo un cálculo de sumx?

Estoy tratando de devolver el sumproduct de los próximos 4 años de una medida por un multiplicador dinámico para diferentes previsiones financieras, pero no puedo conseguir que funcione. ¿Te preguntas si alguien podría ayudar?

Mis datos están en una tabla plana:

PronósticoNombre    Fiscal  TransacciónTipo Valor
Previsión1      2019         préstamo       10
Pronóstico1      2020         préstamo       10
Pronóstico1      2021         préstamo       10 Pronóstico 1      2022         préstamo       20
Pronóstico1      2023         préstamo       25
Pronóstico2      2019         préstamo       30
Pronóstico2      2019         volumen de negocios        40 Pronóstico
30 Pronóstico 30 Pronóstico        503 Pronóstico
503      Pronóstico         Facturación de        2020 50

Tengo una medida para calcular el endeudamiento:

Préstamos: CALCULATE(SUM(Table[Value]),Table[TransactionType]-"borrowing")

Y una medida para el silenciador (básicamente devuelve 1, 1, 0,5, 0o):

Multiplicador : 
VAR YearNumber ? MAX(Tabla[Año fiscal])-2018
RETURN
IF(2.5 > YearNumber,1, IF(2.5 > YearNumber-1,.5,0))

Aquí está mi intento de escribir la medida de estilo de producto de suma:

Pronóstico de préstamos - 
VAR CurrentFiscalYear ? MAX(Table[Fiscal Year])

RETURN
SUMX((FILTER(ALLEXCEPT(Table,Table[ForecastName]),
           Table[Fiscal Year] < CurrentFiscalYear + 4 &&
           Table[Fiscal Year] > CurrentFiscalYear)
Mutiplier x Borrowing)

La idea es que cuando pones la medida en una tabla con FiscalYear en la fila, filtrada por ForecastName, toma el Año Fiscal de la fila y lo coloca en la variable, luego lo usa para filtrar toda la tabla en los 3 Ejercicios actuales y siguientes, pero mantiene el filtro en ForecastName, a continuación, realiza el cálculo y lo suma. La tabla muestra mi resultado deseado para Forecast1:

Pronóstico de préstamo del año fiscal - DESEADO
2019         25 ((10*1)+(10*1)+(10*0.5)+(20*0))
2020         30 ((10*1)+(10*1)+(20*0.5)+(25*0))

El resultado real es un gran número que no entiendo, pero creo que uno de los problemas es la parte ALLEXCEPT doesn't parecen estar funcionando..

También me pregunté si el hecho de que la medida que estoy tratando de utilizar en la parte de cálculo de SUMX contiene CALCULATE?

¡Muchas gracias!

5 REPLIES 5
v-gizhi-msft
Community Support
Community Support

Hola

Después de mi prueba (utilizando todos los datos y medidas de muestra), la medida [Pronóstico de préstamo] debe mostrarse así:

130.PNG

Por lo tanto, para su requisito, por favor tome los siguientes pasos:

1)Crear una tabla de segmentación separada:

Slicer Table = DISTINCT(SELECTCOLUMNS('Table',"Fiscal Year",'Table'[Fiscal Year]))

2)Pruebe esta medida:

Measure =
CALCULATE (
    SUMX ( DISTINCT ( 'Table'[Fiscal Year] ), [Borrowing] * [Multiplier] ),
    FILTER (
        ALLSELECTED ( 'Table' ),
        'Table'[ForecastName] = "Forecast1"
            && 'Table'[Fiscal Year]
                <= SELECTEDVALUE ( 'Slicer Table'[Fiscal Year] ) + 3
            && 'Table'[Fiscal Year] >= SELECTEDVALUE ( 'Slicer Table'[Fiscal Year] )
    )
)

3)El reuslt debe mostrar se siguiente:

Consejos: La suma de los valores en 2020 es diferente de su resultado esperado publicado, por favor compruébelo.

131.PNG

Si he malinterpretado su requisito y lógica, por favor por favor por favor por favor por favor, por favor, hágamelo saber.

Aquí está mi archivo pbix de prueba:

pbix

Espero que esto ayude.

Saludos

Giotto

Anonymous
Not applicable

Hola, gracias por la respuesta. Un par de cosas, una mi culpa:

el multiplicador se fija después de los primeros años; así como el año seleccionado cambia, es eso y los próximos 3 años x los mismos 4 valores que generé inicialmente

la previsión debe tomarse de cualquier filtro que se aplique fuera de la medida (procedente de una segmentación de datos), en lugar de estar codificado de forma rígida en la medida.

Gracias de nuevo por mirar esto.

Hola

Intente crear primero una tabla de segmentación de datos forecastName independiente:

ForecastNameSlicer = DISTINCT(SELECTCOLUMNS('Table',"ForeastName",'Table'[ForecastName]))

A continuación, cambie la medida original a esta:

Measure = 
CALCULATE (
    SUMX ( DISTINCT ( 'Table'[Fiscal Year] ), [Borrowing] * [Multiplier] ),
    FILTER (
        ALLSELECTED ( 'Table' ),
        'Table'[ForecastName] = SELECTEDVALUE ( ForecastNameSlicer[ForeastName] )
            && 'Table'[Fiscal Year]
                <= SELECTEDVALUE ( 'Slicer Table'[Fiscal Year] ) + 3
            && 'Table'[Fiscal Year] >= SELECTEDVALUE ( 'Slicer Table'[Fiscal Year] )
    )
)

Cuando se selecciona un valor en forecastName slicer, el resultado muestra:

5.PNG

Espero que esto ayude.

Saludos

Giotto

FrankAT
Community Champion
Community Champion

Hola @homeschooled ,

eso es lo que tengo, ver figura:

02-04-_2020_23-37-58.png

Saludos FrankAT

Greg_Deckler
Super User
Super User

Generalmente usando ALLEXCEPT o KEEPFILTERS


@ 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!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.