Total acumulado / acumulado por grupo

Un usuario Pregunto ✅

CahabaData

Parece que no puedo manejar esto. Datos iniciales:

Grupo ID de servicio Monto

A 1 $ 2

A 4 $ 1

A 2 $ 3

B 2 $ 1

B 6 $ 4

Resultado buscado:

Grupo Servicio ID Cantidad GroupSum
A 1 $ 2 $ 2
A 4 $ 1 $ 3
A 2 $ 3 $ 6

B 2 $ 1 $ 1
B 6 $ 4 $ 5

ya sea Medida o Columna calculada …. en Dax Patterns cada ejemplo tiene un campo de fecha involucrado ….. como si estuviera dando vueltas en este en este momento ……. preguntándose si la falta de un campo secuencial es mi problema o simplemente niebla mental general ……….

Habib

Hola @CahabaData, eres cierto, la falta de campo secuencial es el problema principal.

Puede lograr esto siguiendo los pasos a continuación.

1 – Agrega un número de secuencia. Puede usar la función RANKX para esto.

Rank = RANKX(SampleData,SampleData[Service ID],,ASC,Dense)

2 – Agregue RunningTotal usando la fórmula siguiente

RunningTotal =
CALCULATE (
    SUM ( SampleData[Amount] ),
    ALLEXCEPT ( SampleData, SampleData[Group] ),
    SampleData[Rank] <= EARLIER ( SampleData[Rank] )
)

Esto le dará los resultados deseados. 🙂

@CahabaData

Primero puede agregar una columna de índice en el Editor de consultas y luego crear una columna calculada con la función ANTERIORES para obtener el resultado esperado.

Total acumulativo acumulado por Grupo_1.jpg

GroupSum = 
SUMX (
    FILTER (
        Table1,
        EARLIER ( Table1[Group] ) = Table1[Group]
            && EARLIER ( Table1[Index] ) >= Table1[Index]
    ),
    Table1[Amount]
)

Total acumulativo acumulado por Group_2.jpg

Atentamente,

Herbert

B_33

Hola a todos,

Soy extremadamente nuevo en el uso del acceso, así que por favor dígame si no entiendo alguna respuesta que tenga inicialmente. He estado tratando de resolver un problema que tengo dentro de Access, pero no he podido encontrar ninguna información específica sobre lo que necesitaba que hiciera mi base de datos de Access:

– Necesito crear un número secuencial basado en el total de registros de un cliente.

-Necesito este número para reiniciar cada año.

-Necesito que este número sea específico para el cliente.

-No estoy seguro de si debería crearlo como una consulta que agrega la información a una tabla o como una macro de datos antes de cambiar.

Por favor ayuda. Estoy realmente estancado y estoy en un callejón sin salida.

CahabaData

En respuesta a B_33

¿Su publicación es una pregunta sobre cómo implementar en la base de datos de Microsoft Access? O bien, ¿está buscando implementar esto en Power BI?

B_33

En respuesta a CahabaData

se trata de cómo implementar esto en la base de datos de Microsoft Access,

Gracias

CahabaData

En respuesta a B_33

Debería publicar una pregunta de Microsoft Access aquí:

«https://social.msdn.microsoft.com/Forums/office/en-US/home?forum=accessdev»

Un solicitud puede agregar y almacenar un número secuencial por ID, en el momento de la entrada de datos. Pero una base de datos en sí misma no genera inherentemente ese valor en sus tablas. Pero ese enfoque sería inusual y problemático. Si un registro se elimina legítimamente, entonces la numeración secuencial debe volver a generarse para llenar ese vacío. Esta es la razón por la que estos valores se generan en el nivel de informes y no se almacenan en el nivel de la tabla de la base de datos.

Debido a que el valor normalmente no existe en las tablas de la base de datos, se crearían estos valores en el informe; en los informes de Microsoft Access, estos no son valores almacenados, sino que forman parte de la presentación del objeto del informe; en Power BI puede usar medidas o columnas calculadas.

@CahabaData

Primero puede agregar una columna de índice en el Editor de consultas y luego crear una columna calculada con la función ANTERIORES para obtener el resultado esperado.

Total acumulativo acumulado por Grupo_1.jpg

GroupSum = 
SUMX (
    FILTER (
        Table1,
        EARLIER ( Table1[Group] ) = Table1[Group]
            && EARLIER ( Table1[Index] ) >= Table1[Index]
    ),
    Table1[Amount]
)

Total acumulativo acumulado por Group_2.jpg

Atentamente,

Herbert

CahabaData

En respuesta a v-haibl-msft

gracias a los dos H … no estaba claro para mí con DAX si podría acumularse en este escenario sin ningún campo de secuenciación; parecía factible pensar que podría hacerlo, ya que hay un contexto de fila y la ID de grupo …

muy contento de tener una confirmación final sobre este tema. Ambos enfoques que ha proporcionado son muy factibles.

En respuesta a CahabaData

@CahabaData

No creo que pueda acumularse en este escenario sin ningún campo de secuenciación. El ID de grupo u otras columnas no tienen ningún orden, por lo que necesitamos una columna de secuencia para hacer el cálculo.

Atentamente,

Herbert

Habib

Hola @CahabaData, eres cierto, la falta de campo secuencial es el problema principal.

Puede lograr esto siguiendo los pasos a continuación.

1 – Agrega un número de secuencia. Puede usar la función RANKX para esto.

Rank = RANKX(SampleData,SampleData[Service ID],,ASC,Dense)

2 – Agregue RunningTotal usando la fórmula siguiente

RunningTotal =
CALCULATE (
    SUM ( SampleData[Amount] ),
    ALLEXCEPT ( SampleData, SampleData[Group] ),
    SampleData[Rank] <= EARLIER ( SampleData[Rank] )
)

Esto le dará los resultados deseados. 🙂

Deja un comentario

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