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

Suma dinámica entre dos conjuntos de datos con múltiples criterios

Hola

Tener un poco de pepinillo en este, pero espero que alguien aquí pueda ayudar potencialmente. Simplemente no estoy muy seguro de cómo puedo hacer esto dinámicamente, pero necesito que el poder bi resuma la información basada en dos conjuntos de datos diferentes.

Entonces, tenemos ingresos y los ingresos se dividen por la identificación de dicha persona que genera ingresos, el número de mes, el año y la cantidad de ingresos.

En un conjunto de datos diferente, tenemos esas mismas identificaciones donde se mostrará un mes de inicio, un año de inicio y un mes de finalización y un año de finalización.

Lo que estoy tratando de hacer es decirle a Dax que solo resuma la información que se encuentra entre ese mes de inicio / año de inicio y el mes de fin / año de finalización.

Por ejemplo:

Bill hizo 1,000,000 en 2019 - 2020

y 1.000.000 en 2021-2022
el Desglose es tal:

IDENTIFICACIÓNEjercicio de ingresosMes de ingresosIngresos
12342019

3

250000
12342019

6

250000
12342020

2

250000
12342020

7

250000
12342021

1

250000
123420216250000
123420219250000
123420223250000

Mi otro conjunto de datos se verá algo como esto:

IDENTIFICACIÓNMes de inicioAño de inicioFin de mesFin de añoEjercicio de ingresos
12346202062021Año 1
12346202162022Año 2

¿Cómo puedo decirle a dax que resuma dinámicamente entre ese período de tiempo? Entonces, esencialmente, donde en el siguiente conjunto de datos vemos que el Año 1 está entre el Mes 6 de 2019 y el Mes 6 de 2020, esto sumaría hasta $ 750,000 y luego el Año 2 sería de $ 500,000.


Por favor, sepa que hay más de 4000 identificaciones y años que abarcan desde 2013 hasta 2034, así que si puedo hacer esta dinámica, estaría muy feliz.

¡Gracias de nuevo!

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Hola

Muestre el resultado exacto que está esperando.

Lo siento, reedité mi publicación, no me di cuenta de que tenía algunos errores tipográficos. Esencialmente, quiero hacer una suma dinámica si eso mira las filas año y mes. Esencialmente, es un ingreso de suma que es igual al año de inicio y mayor o igual que el mes # en la tabla de ingresos + ingresos que es igual al año final y menor o igual que el mes final #.

Por favor, explique cómo llegó a 750.000 y 500.000 muy claramente.

Syndicate_Admin
Administrator
Administrator

Hola @mattwoldt ,

¿Qué quiere decir con esta afirmación? No hay datos a continuación y los años en la segunda tabla son todos 2020.

¿Cómo puedo decirle a dax que resuma dinámicamente entre ese período de tiempo? Entonces, esencialmente, donde en el siguiente conjunto de datos vemos que el Año 1 está entre el Mes 6 de 2019 y el Mes 6 de 2020, esto sumaría hasta $ 750,000 y luego el Año 2 sería de $ 500,000.

Lo siento, reedité mi publicación, no me di cuenta de que tenía algunos errores tipográficos. Esencialmente, quiero hacer una suma dinámica si eso mira las filas año y mes. Esencialmente, es un ingreso de suma que es igual al año de inicio y mayor o igual que el mes # en la tabla de ingresos + ingresos que es igual al año final y menor o igual que el mes final #.

@mattwoldt ,

Tenga en cuenta que hay una superposición en su segunda tabla: 202106 es tanto el período final del Año 1 como el comienzo del Año 2.

Para simplificar la calcuación, creé varias columnas para ayudar con los cálculos.

Tabla1

Revenue YrMo = 
VALUE ( Table1[Revenue Year] & FORMAT ( Table1[Revenue Month], "00" ) )

Cuadro2

Start YrMo = 
VALUE ( Table2[Start Year] & FORMAT ( Table2[Start Month], "00" ) )
End  YrMo = 
VALUE ( Table2[End Year] & FORMAT ( Table2[End Month], "00" ) )

Para los ingresos, puede utilizar una columna calculada o un enfoque de medida.

Columna Calc en la tabla2

Revenue Sum (Calculated Column) = 
CALCULATE (
    SUM ( Table1[Revenue] ),
    FILTER (
        Table1,
        Table1[Revenue YrMo] >= EARLIER ( Table2[Start YrMo] )
            && Table1[Revenue YrMo] <= EARLIER ( Table2[End  YrMo] )
    ),
    Table1[ID] = EARLIER ( Table2[ID] )
)

Medir

Revenue Sum (Measure) = 
SUMX (
    ADDCOLUMNS (
        SUMMARIZE ( Table2, Table2[ID], Table2[Start YrMo], Table2[End  YrMo] ),
        "x",
            CALCULATE (
                SUM ( Table1[Revenue] ),
                FILTER (
                    Table1,
                    Table1[Revenue YrMo] >= [Start YrMo]
                        && Table1[Revenue YrMo] <= [End  YrMo]
                        && Table1[ID] = [ID]
                )
            )
    ),
    [x]
)

Esas columnas/medidas darían como resultado esto:

danextian_0-1654563060682.png

Consulte este enlace para ver el pbix de muestra - https://drive.google.com/file/d/1_Iv8UAqk58yxQOEDsLFdS7l3fgjxIUOh/view?usp=sharing

Me alegro de que haya funcionado.

EARLIER devuelve el valor de una fila de una columna. Si no se especifica el segundo argumento, el valor predeterminado es la fila actual.

Bueno, es posible que haya hablado un poco demasiado pronto. Estoy recibiendo cálculos para algunos, pero para otros aparece en blanco, ¿alguna idea de por qué?
Revisé el otro conjunto de datos, las identificaciones definitivamente están allí y las identificaciones tienen ingresos entre esos rangos.

¡Uau!

Estoy absolutamente sorprendido de que sea increíble. Funciona al 100%. ¡Muchas gracias! Entonces, ¿supongo que la función de filtro con un anterior es una forma de hacer una suma dinámica si parece? Simplemente absolutamente increíble.

Muchas gracias.

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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