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
Syndicate_Admin
Administrator
Administrator

Creación de una fórmula daX dinámica para el siguiente escenario

Hola

Estoy tratando de calcular la suma de ejecución por mes hacia atrás. Todo lo que trato de hacer es tomar cualquier número del resumen para cada lable en bruto y menos de la "Tabla de cambios". Luego use ese resultado para menos cualquier valor de "Cambiar tabla" para cada mes. Puede ver debajo de mi hoja de Excel, solo uso el valor de "Cambiar tabla" una vez para comenzar.

Por ejemplo,
Resumen

APAC 6851

Tabla de cambios

2021

P4

APAC

Diciembre -4

Noviembre -228

Octubre 104

Cálculo de resultados

APAC Demcember [6581 - (-4) ] = 6855
APAC November  [6855 - (-228) ] = 7083
APAC Octomber  [7083 - (104) ] = 6979

ss.png

Archivo de Power BI de ejemplo

https://drive.google.com/file/d/1v3aD_AbKB1v1N3sFjDZnudjI8EnvKY7j/view?usp=sharing

Archivo de Excel con formulario (consulte "Hoja de cálculo de datos de ejemplo")

https://docs.google.com/spreadsheets/d/1cR9MDeC52qlD_F1b7hLTNutVnPNsEOe1/edit?usp=sharing&ouid=11172...

Muchas gracias

2 ACCEPTED SOLUTIONS

@bikelley ,

No he respondido a esta publicación porque ha estado trabajando con el apoyo de la comunidad, pero el problema en su cálculo es el hecho de que está utilizando dos columnas de región diferentes para el contexto de su medida, por lo que el cálculo se vuelve incorrecto:

MFelix_0-1642870805255.png

La tabla superior se hace con la región adj de la tabla combinada anexada, lo que hace que el total de horas sea diferente de la tabla inferior que se realiza utilizando el resumen del proyecto. Dado que su matriz se realiza con la tabla de resumen, esto le dará los resultados incorrectos.

En lugar de tener (APAC DEcember) 4033 - 407 = 3.626 se obtiene 4033 - 571 = 3.462

Para que esto le dé el resultado correcto, rehaga sus cálculos para:

Total Value New_ = 
VAR minimumdate =
    CALCULATE (
        MIN ( 'AppendCombined (2)'[Date] ),
        ALL ( 'AppendCombined (2)'[Date] )
    )
VAR totalhour =
    CALCULATE (
        CALCULATE (
            SUM ( 'AppendCombined (2)'[Hours] ),
            CROSSFILTER ( 'AppendCombined (2)'[Project Name], 'df_ProjectSummary (3)'[Project Name], NONE ),
            'AppendCombined (2)'[Region_Adj]
                = SELECTEDVALUE ( 'df_ProjectSummary (3)'[Region Adj] )
        ),
        FILTER (
            ALL ( 'AppendCombined (2)'[Date].[Date] ),
            'AppendCombined (2)'[Date].[Date] >= MIN ( 'AppendCombined (2)'[Date] )
        )
    )
RETURN
    IF (
        MIN ( 'AppendCombined (2)'[Date].[Date] ) <= minimumdate,
        SUM ( 'df_ProjectSummary (3)'[Remaining Billable Hours] ) - totalhour
    )

Has podido ver a continuación que hay una diferencia entre ambos cálculos cree que el último (Valor Total _) es el que deseas.

MFelix_1-1642872519224.png

El contexto es muy importante y en este caso cambiaste el contexto del cálculo y obtienes el resultado incorrecto, en base a lo que veo de tus datos deberías tener dimensiones para las regiones y para las fechas de esa manera tus cálculos serían correctos.

Si revisa las dos tablas a continuación, puede ver la diferencia en los valores:

View solution in original post

@bikelley ,

Por favor, compruebe la respuesta de @MFelix. Él encuentra tu problema. Este es, de hecho, el problema.


pero el problema en su cálculo es el hecho de que está utilizando dos columnas de región diferentes para el contexto de su medida, por lo que el cálculo se vuelve incorrecto:


Icey_0-1643162627851.png

Icey_1-1643162666334.png

Después de cambiar esto, tanto @MFelixcomo mis medidas podrían darte el resultado que deseas.

Saludos

Helado

Si este post Ayuda, a continuación, por favor considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

19 REPLIES 19
Syndicate_Admin
Administrator
Administrator

@Icey

Lamento mucho seguir molestándote, noto que en nuestra tabla de resultados finales solo calcula el primer valor que es diciembre correcto. Entonces todo no es correcto. ¿Crees que estamos deduciendo el número equivocado?

Por ejemplo, si seleccionamos APAC raw. A continuación debería ser el resultado. ¿Alguna idea de por qué nos está dando el número equivocado?

Tabla de horas de trabajo pendiente

APAC

4021

Tabla de cambios de trabajo pendiente (horas)

APAC en bruto

Diciembre = 503

Noviembre = -226

Octubre = -4

Septiembre = 137

Agosto = -155

Resultado esperado

Diciembre = 3518 ( 4021 - 503) Esto es correcto

Noviembre = 3744 (3518 - (-226)) Nuestra tabla muestra 4247 que no es bueno

Octubre = 3748 (3744 - (-4)) Nuestra tabla Valor 4025, no es bueno

Septiembre = 3611 (3748 - 137) Nuestro valor de tabla 3884

Agosto = 3766 (3611 - (-155)) Nuestro valor de tabla 4176

Muchas gracias por su ayuda. Realmente lo aprecio.

Syndicate_Admin
Administrator
Administrator

@Icey

Lamento mucho seguir molestándote, noto que en nuestra tabla de resultados finales solo calcula el primer valor que es diciembre correcto. Entonces todo no es correcto. ¿Crees que estamos deduciendo el número equivocado?

Por ejemplo, si seleccionamos APAC raw. A continuación debería ser el resultado. ¿Alguna idea de por qué nos está dando el número equivocado?

Tabla de horas de trabajo pendiente

APAC

4021

Tabla de cambios de trabajo pendiente (horas)

APAC en bruto

Diciembre = 503

Noviembre = -226

Octubre = -4

Septiembre = 137

Agosto = -155

Resultado esperado

Diciembre = 3518 ( 4021 - 503) Esto es correcto

Noviembre = 3744 (3518 - (-226)) Nuestra tabla muestra 4247 que no es bueno

Octubre = 3748 (3744 - (-4)) Nuestra tabla Valor 4025, no es bueno

Septiembre = 3611 (3748 - 137) Nuestro valor de tabla 3884

Agosto = 3766 (3611 - (-155)) Nuestro valor de tabla 4176

Muchas gracias por su ayuda. Realmente lo aprecio.

1.jpg

Syndicate_Admin
Administrator
Administrator

@Icey & @MFelix

Como puede ver, creé el mismo cálculo, pero me está dando el número equivocado. No pude encontrar nada malo ya que hice exactamente lo mismo que me dijeron. ¿Cómo se filtra esto a los últimos 13 meses? Agrego un filtro de fecha en el panel de filtro no funcionó tho.

1.jpg
Realmente aprecio su ayuda en esto.

@bikelley ,

Por favor, compruebe si esto podría cumplir con sus requisitos:

Total Value = 
VAR FilterMaxDate_ =
    CALCULATE ( MAX ( AppendCombined[Date] ), ALLSELECTED () )
VAR Last13Months_ =
    DATESINPERIOD ( AppendCombined[Date], FilterMaxDate_, -13, MONTH )
VAR totalhour =
    CALCULATE (
        SUM ( AppendCombined[Hours] ),
        FILTER (
            ALLSELECTED ( AppendCombined[Date] ),
            AppendCombined[Date] IN Last13Months_
        )
    )
RETURN
    IF (
        MIN ( AppendCombined[Date] ) IN Last13Months_,
        SUM ( df_ProjectSummary[Remaining Billable Hours] ) - totalhour
    )

Icey_0-1642667257981.png

Saludos

Helado

Si este post Ayuda, a continuación, por favor considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@Icey

Lamento mucho seguir molestándote, noto que nuestros números de la tabla de resultados finales son incorrectos, excepto para el mes de diciembre. ¿Crees que estamos deduciendo los números equivocados?

Por ejemplo, tomemos datos sin procesar de APAC,

Diciembre = 3518 (4021 - 503) Esto correcto en la tabla final
Noviembre = 3744 (3518 - (-226)) Nuestra tabla final muestra 4274 que no es bueno

Octubre = 3748 (3744 - (-4)) Nuestra tabla final muestra 4025

Septiembre = 3611 (3748 - 137) Nuestra tabla final muestra 3884

Agosto = 3766 (3611 - (-155)) Nuestra tabla muestra 4176

1.jpg

Muchas gracias. Realmente lo aprecio.

@bikelley ,

Por favor, compruebe esto:

Total Value = 
VAR FilterMaxDate_ =
    CALCULATE ( MAX ( AppendCombined[Date] ), ALLSELECTED () )
VAR Last13Months_ =
    DATESINPERIOD ( AppendCombined[Date], FilterMaxDate_, -13, MONTH )
VAR totalhour =
    CALCULATE (
        SUM ( AppendCombined[Hours] ),
        FILTER (
            ALLSELECTED ( AppendCombined[Date].[Date] ),
            AppendCombined[Date].[Date] >= MIN ( AppendCombined[Date].[Date] )
        )
    )
RETURN
    IF (
        MIN ( AppendCombined[Date] ) IN Last13Months_,
        SUM ( df_ProjectSummary[Remaining Billable Hours] ) - totalhour
    )

Icey_0-1642747016152.png

Saludos

Helado

Si este post Ayuda, a continuación, por favor considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@Icey

Por última vez. ¿Pueden comprobar mi archivo? No estoy recibiendo lo mismo que tú. Esta es la última vez que te molestaré. Si tiene pocos minutos de su tiempo libre, eche un vistazo a mi archivo y hágamelo saber qué está mal. A veces "NA" no está dando el número correcto. Ahora no lo hace en absoluto. Si obtiene un tiempo, puede verificar los 5 crudos. Una vez más, esta es la última vez que te molestaré y no más.

https://drive.google.com/file/d/19WxnFZuyIQjGNjr9lNJ7CXvjRzgd6XsI/view?usp=sharing

Muchas gracias y realmente aprecio su ayuda. No estoy seguro de qué está causando que esto salga mal.

@bikelley ,

No he respondido a esta publicación porque ha estado trabajando con el apoyo de la comunidad, pero el problema en su cálculo es el hecho de que está utilizando dos columnas de región diferentes para el contexto de su medida, por lo que el cálculo se vuelve incorrecto:

MFelix_0-1642870805255.png

La tabla superior se hace con la región adj de la tabla combinada anexada, lo que hace que el total de horas sea diferente de la tabla inferior que se realiza utilizando el resumen del proyecto. Dado que su matriz se realiza con la tabla de resumen, esto le dará los resultados incorrectos.

En lugar de tener (APAC DEcember) 4033 - 407 = 3.626 se obtiene 4033 - 571 = 3.462

Para que esto le dé el resultado correcto, rehaga sus cálculos para:

Total Value New_ = 
VAR minimumdate =
    CALCULATE (
        MIN ( 'AppendCombined (2)'[Date] ),
        ALL ( 'AppendCombined (2)'[Date] )
    )
VAR totalhour =
    CALCULATE (
        CALCULATE (
            SUM ( 'AppendCombined (2)'[Hours] ),
            CROSSFILTER ( 'AppendCombined (2)'[Project Name], 'df_ProjectSummary (3)'[Project Name], NONE ),
            'AppendCombined (2)'[Region_Adj]
                = SELECTEDVALUE ( 'df_ProjectSummary (3)'[Region Adj] )
        ),
        FILTER (
            ALL ( 'AppendCombined (2)'[Date].[Date] ),
            'AppendCombined (2)'[Date].[Date] >= MIN ( 'AppendCombined (2)'[Date] )
        )
    )
RETURN
    IF (
        MIN ( 'AppendCombined (2)'[Date].[Date] ) <= minimumdate,
        SUM ( 'df_ProjectSummary (3)'[Remaining Billable Hours] ) - totalhour
    )

Has podido ver a continuación que hay una diferencia entre ambos cálculos cree que el último (Valor Total _) es el que deseas.

MFelix_1-1642872519224.png

El contexto es muy importante y en este caso cambiaste el contexto del cálculo y obtienes el resultado incorrecto, en base a lo que veo de tus datos deberías tener dimensiones para las regiones y para las fechas de esa manera tus cálculos serían correctos.

Si revisa las dos tablas a continuación, puede ver la diferencia en los valores:

@MFelix


Muchas gracias por la ayuda. Nunca pensé en la región, porque ya me había unido a la mesa y pensé que debería funcionar bien. Una vez más, muchas gracias por atraparlo. De lo contrario, me volveré loco.

@bikelley ,

Por favor, compruebe la respuesta de @MFelix. Él encuentra tu problema. Este es, de hecho, el problema.


pero el problema en su cálculo es el hecho de que está utilizando dos columnas de región diferentes para el contexto de su medida, por lo que el cálculo se vuelve incorrecto:


Icey_0-1643162627851.png

Icey_1-1643162666334.png

Después de cambiar esto, tanto @MFelixcomo mis medidas podrían darte el resultado que deseas.

Saludos

Helado

Si este post Ayuda, a continuación, por favor considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@Icey muchas gracias por su ayuda también. Realmente aprecio su ayuda en esto.

@Icey

1.jpg

Muchas gracias por su tiempo y ayuda. Lamento mucho seguir molestándote, y descubrí que los números de nuestra tabla de resultados finales no son correctos, excepto por el primer valor, que son los valores de diciembre. ¿Crees que deducimos el número equivocado después del 1er valor?

Por ejemplo, si selecciona el APAC sin formato. A continuación debe ser el resultado correcto. ¿Alguna idea de por qué está generando el número equivocado a partir de noviembre?

Tabla de horas de trabajo pendiente

APAC

4021

Tabla de cambios de trabajo pendiente (horas)
APAC en bruto
Diciembre = 503

Noviembre = -226

Octubre = -4

Septiembre = 137

Agosto = -155

Resultado esperado

Diciembre = 3518 ( 4021 - 503) Esto es correcto

Noviembre = 3744 (3518 - (-226)) Nuestra tabla muestra 4247 que no es bueno

Octubre = 3748 (3744 - (-4)) Nuestra tabla Valor 4025, no es bueno

Septiembre = 3611 (3748 - 137) Nuestro valor de tabla 3884

Agosto = 3766 (3611 - (-155)) Nuestro valor de tabla 4176

Tahnk tanto. Realmente lo aprecio.

@Icey

1.jpg

Lamento mucho seguir molestándote, noto que en nuestra tabla de resultados finales solo calcula el primer valor que es diciembre correcto. Entonces todo no es correcto. ¿Crees que estamos deduciendo el número equivocado?

Por ejemplo, si seleccionamos APAC raw. A continuación debería ser el resultado. ¿Alguna idea de por qué nos está dando el número equivocado?

Tabla de horas de trabajo pendiente

APAC

4021

Tabla de cambios de trabajo pendiente (horas)

APAC en bruto

Diciembre = 503

Noviembre = -226

Octubre = -4

Septiembre = 137

Agosto = -155

Resultado esperado

Diciembre = 3518 ( 4021 - 503) Esto es correcto

Noviembre = 3744 (3518 - (-226)) Nuestra tabla muestra 4247 que no es bueno

Octubre = 3748 (3744 - (-4)) Nuestra tabla Valor 4025, no es bueno

Septiembre = 3611 (3748 - 137) Nuestro valor de tabla 3884

Agosto = 3766 (3611 - (-155)) Nuestro valor de tabla 4176

Muchas gracias por su ayuda. Realmente lo aprecio.

@Icey

1.jpg

Muchas gracias por su respuesta, y lamento mucho seguir molestándolo, noto que en nuestra tabla de resultados finales solo calcula el primer valor que es correcto en diciembre. Entonces todo no es correcto. ¿Crees que estamos deduciendo el número equivocado?

Por ejemplo, si seleccionamos APAC raw. A continuación debería ser el resultado. ¿Alguna idea de por qué nos está dando el número equivocado?

Tabla de horas de trabajo pendiente

APAC

4021

Tabla de cambios de trabajo pendiente (horas)

APAC en bruto

Diciembre = 503

Noviembre = -226

Octubre = -4

Septiembre = 137

Agosto = -155

Resultado esperado

Diciembre = 3518 ( 4021 - 503) Esto es correcto

Noviembre = 3744 (3518 - (-226)) Nuestra tabla muestra 4247 que no es bueno

Octubre = 3748 (3744 - (-4)) Nuestra tabla Valor 4025, no es bueno

Septiembre = 3611 (3748 - 137) Nuestro valor de tabla 3884

Agosto = 3766 (3611 - (-155)) Nuestro valor de tabla 4176

Muchas gracias por su ayuda. Realmente lo aprecio.

Syndicate_Admin
Administrator
Administrator

@bikelley ,

Una pequeña modificación basada en la medida de @MFelix.

Total Value =
VAR minimumdate =
    CALCULATE (
        MIN ( AppendChange[Date] ),
        ALL ( AppendChange[Date] ),
        ALL ( ProjSummary[Region] ) --------------added
    )
VAR totalhour =
    CALCULATE (
        SUM ( AppendChange[Hours] ),
        FILTER (
            ALL ( AppendChange[Date].[Date] ),
            AppendChange[Date].[Date] >= MIN ( AppendChange[Date].[Date] ) ---------modified
        )
    )
RETURN
    IF (
        MIN ( AppendChange[Date].[Date] ) <= minimumdate,
        SUM ( ProjSummary[Remaining Billable Hours] ) - totalhour
    )

Icey_1-1642570387507.png

Saludos

Helado

Si este post Ayuda, a continuación, por favor considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @Icey
Muchas gracias por ayudar y su tiempo. Esto es exactamente lo que quiero con espacios llenos. Como mencioné con @MFelix no pude obtener el número correcto como ustedes. Intenté cambiar la fecha y la región no funcionó. ¿Puede echar un vistazo a mi archivo por última vez? Estoy realmente atascado y no pude encontrar el error, pero hice lo mismo que todos ustedes hicieron.


https://drive.google.com/file/d/19WxnFZuyIQjGNjr9lNJ7CXvjRzgd6XsI/view

Una vez más, muchas gracias por su ayuda y tiempo.

Syndicate_Admin
Administrator
Administrator

¿@bikelley

Añádase la medida siguiente:

Total Value =
VAR minimumdate =
    CALCULATE ( MIN ( AppendChange[Date] ), ALL ( AppendChange[Date] ) )
VAR totalhour =
    CALCULATE (
        SUM ( AppendChange[Hours] ),
        FILTER (
            ALL ( AppendChange[Date].[Date] ),
            AppendChange[Date].[Date] >= MIN ( AppendChange[Date] )
        )
    )
RETURN
    IF (
        MIN ( AppendChange[Date].[Date] ) <= minimumdate,
        SUM ( ProjSummary[Remaining Billable Hours] ) - totalhour
    )

MFelix_0-1642438271806.png

Hola @MFelix


Muchas gracias por ayudar y su tiempo.


Realmente me gusta tu idea, pero me estoy encontrando con 2 problemas tho. Mis números son erróneos y cuando lo filtro dure 13 meses no funcionará.


El problema principal es que mi número está equivocado de alguna manera. Hice exactamente lo mismo que tú, no pude encontrar el problema. debería ser algo simple pero sin suerte encontrarlo. ¿Podría echar un vistazo a mi archivo a continuación?


https://drive.google.com/file/d/1T6yFIWIzRJASF5uoJ2kIl0zp46-udmST/view?usp=sharing

Una vez más, muchas gracias por su ayuda y tiempo.

Hola
Muchas gracias por ayudar y su tiempo.
Me estoy topando con 2 problemas tho. Mi número es incorrecto y no puedo filtrar los últimos 13 meses. Solo quiero ver los últimos 13 meses.
La mayoría de Ompotanlry no me está dando el número correcto. No pude encontrar lo que está mal e hice lo mismo que tú. ¿Podría echar un vistazo a mi archivo a continuación?

https://drive.google.com/file/d/1T6yFIWIzRJASF5uoJ2kIl0zp46-udmST/view?usp=sharing
Muchas gracias por su ayuda y tiempo.

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.