el valor se multiplica por el conteo de meses sucesivos

Un usuario Pregunto ✅

John_dozen34999

Hola a todos,

Esta es la tabla dada.
Captura2.PNG

¿Es posible el siguiente resultado en DAX?
Captura.PNG

Gracias por adelantado.

Hola, @John_Dozen34999,

De acuerdo con su descripción, puede crear una tabla para generar 12 meses y usar GENERAR() para conectar 2 mesas,
luego cree una columna de valores calculados y finalmente colóquela en matriz y ordene por índice. la siguiente fórmula para crear:

Paso 1: ingrese datos para crear una tabla y agregue una columna de índice:

v-yalanwu-msft_0-1619605185620.png

Paso 2: Nueva tabla

Gnew_table = GENERATE(SUMMARIZE('Table','Table'[Items]),'Table 2')

Paso 3: crea una columna

value =
VAR a =
RELATED ( 'Table'[Amount] )
* (
MONTH ( CONVERT ( LEFT ( 'Gnew_table'[date], 3 ) & " 1", DATETIME ) )
- MONTH (
CONVERT ( LEFT ( RELATED ( 'Table'[Start of Saving] ), 3 ) & " 1", DATETIME )
) + 1
)
RETURN
IF ( a > 0, a, BLANK () )

Paso 4: Ordenar por columna de índice

v-yalanwu-msft_1-1619605203591.png

Por último, cree una matriz. El resultado final se muestra a continuación:

v-yalanwu-msft_2-1619605380576.png

Atentamente,
Equipo de apoyo comunitario_ Yalan Wu
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola, @John_Dozen34999,

De acuerdo con su descripción, puede crear una tabla para generar 12 meses y usar GENERAR() para conectar 2 mesas,
luego cree una columna de valores calculados y finalmente colóquela en matriz y ordene por índice. la siguiente fórmula para crear:

Paso 1: ingrese datos para crear una tabla y agregue una columna de índice:

v-yalanwu-msft_0-1619605185620.png

Paso 2: Nueva tabla

Gnew_table = GENERATE(SUMMARIZE('Table','Table'[Items]),'Table 2')

Paso 3: crea una columna

value =
VAR a =
RELATED ( 'Table'[Amount] )
* (
MONTH ( CONVERT ( LEFT ( 'Gnew_table'[date], 3 ) & " 1", DATETIME ) )
- MONTH (
CONVERT ( LEFT ( RELATED ( 'Table'[Start of Saving] ), 3 ) & " 1", DATETIME )
) + 1
)
RETURN
IF ( a > 0, a, BLANK () )

Paso 4: Ordenar por columna de índice

v-yalanwu-msft_1-1619605203591.png

Por último, cree una matriz. El resultado final se muestra a continuación:

v-yalanwu-msft_2-1619605380576.png

Atentamente,
Equipo de apoyo comunitario_ Yalan Wu
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

John_dozen34999

En respuesta a v-yalanwu-msft

¡Hola!

¿Es posible aplicar la frecuencia de forma trimestral o semestral?

John_dozen34999

En respuesta a v-yalanwu-msft

¡Gracias! esto resolvió mi problema. eres un salvavidas 🙂

Hola @John_Dozen34999

hay algunas cosas que suceden en este cálculo, la primera es tratar con estos elementos uno por uno, incluso para el total, para esto, he usado la función SUMX, luego necesitamos calcular la diferencia de fecha entre el [Start of savings date] y la corriente [year month](o período). Combinando estos dos obtenemos el siguiente calc.

Medida1 =
SUMX (
CALCULABLE (
VALORES ( ‘elementos'[Item] ),
TODO ( fechas )
),
VAR _EndOFDateRange =
MÁX. ( ‘Fechas'[Date] )
VAR _Fecha de inicio =
CALCULAR (
MÍN. ( ‘elementos'[Start of Savings] ),
TODO ( ‘Fechas’ )
)
VAR _Número de meses =
FECHADIFF (
_Fecha de inicio,
_EndOFDateRange,
MES
) + 1
VAR _Monto =
CALCULAR (
SUMA ( ‘elementos'[Amount] ),
TODO ( fechas )
)
REGRESO
SI (
_Número de meses > 0,
_Número de meses * _Monto,
BLANCO ()
)
)

La imagen a continuación muestra que esto se alinea con lo que tiene, sin embargo, existen algunas limitaciones: solo podrá tener una sola cantidad y fecha para un artículo determinado.

Captura.PNG

amichandak

@ John_Dozen34999, pruebe una medida como

medida =
var _min = minx(todas las seleccionadas(‘Fecha’),’Fecha'[Date])
var _val = minx(todoslosseleccionados(‘Tabla’),’Tabla'[value])
regreso
_val1 * fechadoiff(_min, max(‘Fecha'[Date], mes))

John_dozen34999

En respuesta a amichandak

Gracias por la respuesta rápida.

Actualicé mi problema.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *