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

FUNCIÓN MÁXIMA Y VALOR DE SEGMENTACIÓN

Mi informe contiene un filtro (titulado ANNO) en el que el usuario puede seleccionar años específicos de los datos. El valor seleccionado es 'Ultimi 2 anni' que significa 'últimos dos años'. Al aplicar este filtro, el conjunto de datos se filtra a las filas 2019 y 2020.

gabrielefugazzi_0-1605864142237.png

He tomado como referencia líder este registro de cliente con el importe de venta por año extrayéndolo directamente del modelo tabular que he creado.

id 2020 2019 total

0201000084 0 8,52 8,52

Está claro que este cliente específico ha estado inactivo durante 2020 y ha realizado algunas compras en 2019.

Puesto que quería buld dos fórmulas para calcular el monto de venta durante el año pasado y durante el año anterior he probado las siguientes dos fórmulas (fatturato_ac: selling_amount_last_year, fatturato_ap: selling_amount_previous_year).

Ejecutar la fórmula dax (donde el año es fijo) por el año pasado y el año pasado-1

fatturato_ac de VAR - VAR maxdate - 2020 retorno
if(isblank(round(CALCULATE(sum(turnover[turnover]), turnover[anno_fattura] á maxdate), 2)), 0, round(CALCULATE(sum(turnover[turnover[turnover]), turnover[anno_fattura] á maxdate), 2))
fatturato_ap de VAR - VAR maxdate - 2019 retorno
if(isblank(round(CALCULATE(sum(turnover[turnover]), turnover[anno_fattura] á maxdate), 2)), 0, round(CALCULATE(sum(turnover[turnover[turnover]), turnover[anno_fattura] á maxdate), 2))

produce la siguiente fila de matriz

Cattura.JPG

que es el resultado esperado.

Pero mi deseo era utilizar una versión paramétrica de la fórmula donde el año no es fijo, sino directamente vinculado a los valores seleccionados en el filtro. Así que desarrollé las siguientes fórmulas, manteniendo este cálculo como el selector de año máximo que estoy considerando como el valor máximo en el filtro.

VAR maxdate á max(fatturato[anno_fattura])

Ejecutar la fórmula dax (donde el año no es fijo) por el año pasado y el año pasado-1

fatturato_ac de VAR maxdate - max(fatturato[anno_fattura])
devolución
if(isblank(round(CALCULATE(sum(turnover[turnover]), turnover[anno_fattura] á maxdate), 2)), 0, round(CALCULATE(sum(turnover[turnover[turnover]), turnover[anno_fattura] á maxdate), 2))
fatturato_ap de VAR - VAR maxdate ? max(turnover[anno_fattura])-1
devolución
if(isblank(round(CALCULATE(sum(turnover[turnover]), turnover[anno_fattura] á maxdate), 2)), 0, round(CALCULATE(sum(turnover[turnover[turnover]), turnover[anno_fattura] á maxdate), 2))

Producir una situación no deseada en la que el año máximo se selecciona individualmente, fila por fila. Dado que mi cliente de ejemplo no ha realizado ninguna acción este año, el valor del año máximo se desplaza con respecto al año anterior.

Cattura2.JPG

¿Cómo puedo usar la fórmula correctamente para obtener los resultados de la fórmula donde el año se fijó a mano pero con el uso de un parámetro?

Gracias de antemano

1 ACCEPTED SOLUTION
v-shex-msft
Community Support
Community Support

Hola @gabrielefugazzi,

Parece que se enfrenta a la búsqueda del registro anterior en la tabla descontinuada en función de las condiciones, ¿verdad?

Si este es el caso, creo que puede extraer la fecha actual y calcular con un valor numérico fijo no debe ser adecuado para nuestras condiciones.

Debe usar la condición y la fecha actual para filtrar en los registros de tabla para obtener una lista de registros, a continuación, extraer el máximo de ellos y este debe cumplir con el requisito de registros anteriores.

Measure=
VAR currdate =
    MAX ( fatturato[anno_fattura] )
VAR prevdate =
    CALCULATE (
        MAX ( fatturato[anno_fattura] ),
        FILTER (
            ALL( fatturato ),
            [anno_fattura] < currdate
                && 'other conditions'
        )
    )
RETURN
    'your formula'

Para ver los cálculos de nivel total, puede consultar el siguiente blog:

Medir totales, la palabra final

saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

View solution in original post

2 REPLIES 2
v-shex-msft
Community Support
Community Support

Hola @gabrielefugazzi,

Parece que se enfrenta a la búsqueda del registro anterior en la tabla descontinuada en función de las condiciones, ¿verdad?

Si este es el caso, creo que puede extraer la fecha actual y calcular con un valor numérico fijo no debe ser adecuado para nuestras condiciones.

Debe usar la condición y la fecha actual para filtrar en los registros de tabla para obtener una lista de registros, a continuación, extraer el máximo de ellos y este debe cumplir con el requisito de registros anteriores.

Measure=
VAR currdate =
    MAX ( fatturato[anno_fattura] )
VAR prevdate =
    CALCULATE (
        MAX ( fatturato[anno_fattura] ),
        FILTER (
            ALL( fatturato ),
            [anno_fattura] < currdate
                && 'other conditions'
        )
    )
RETURN
    'your formula'

Para ver los cálculos de nivel total, puede consultar el siguiente blog:

Medir totales, la palabra final

saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
amitchandak
Super User
Super User

@gabrielefugazzi, no muy claro para mí. Han probado la inteligencia de tiempo con la tabla de fechas

Ejemplo

YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD('Date'[Date],"12/31"))
Last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-1,Year),"12/31"))
This year Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR('Date'[Date]),"12/31"))
Last year Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR(dateadd('Date'[Date],-1,Year)),"12/31"))
Last to last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-2,Year),"12/31"))
Year behind Sales = CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. Consulte :radacad sqlbi My Video Series Aprecia tus Felicitaciones.

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.

Top Solution Authors