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

Valores positivos netos en un momento determinado.

Tengo tabla de cargos individuales y pago para un cliente. Eg.

ID de clienteFechaTipo Cantidad
11-Enero-2019Servicios A10,000
130-Mar-2019Pago-8,000
11-Jul-2019Servicios B6,000
110-Octubre-2019Pago-9000


Necesito desarrollar créditos de intervalos específicos en el tiempo (MMM-YY). Simplemente trazar la columna Cantidad en valores establece ese propósito, aunque cuando el saldo va negativo como en el caso del 10 de octubre (Saldo = -1.000). la cantidad también es negativa. Técnicamente no debe ir por debajo de cero. ¿Hay alguna manera de lograrlo?

Una manera es agregar una columna calculada a la tabla que agrega los valores anteriores - es que el camino a seguir o está allí una mejor manera

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Así que lo resolví.
1. utilizando la tabla de calendario resumido cada MMM-YY en el rango
2. utilizando la tabla de transacciones, resumió todos los ID
3. cree una tabla cruzada con todos los valores de ambas tablas.
4. A continuación, utilizando addcolumn (a 3) creó una columna calculada que muestra la suma de la actividad anterior de id individual.

var mytable1 = ADDCOLUMNS(
    CROSSJOIN(
        SUMMARIZE(Calender, Calender[Year Month], Calender[Year Month Number]), 
        SUMMARIZE(SF, SF[ID])), 
        "Amount",  CALCULATE(sum(SF[Amount]), FILTER(SF, RELATED(Calender[Year Month Number]) <= EARLIER(Calender[Year Month Number]) && SF[Customer ID]=EARLIER(SF[Customer ID]))

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Así que lo resolví.
1. utilizando la tabla de calendario resumido cada MMM-YY en el rango
2. utilizando la tabla de transacciones, resumió todos los ID
3. cree una tabla cruzada con todos los valores de ambas tablas.
4. A continuación, utilizando addcolumn (a 3) creó una columna calculada que muestra la suma de la actividad anterior de id individual.

var mytable1 = ADDCOLUMNS(
    CROSSJOIN(
        SUMMARIZE(Calender, Calender[Year Month], Calender[Year Month Number]), 
        SUMMARIZE(SF, SF[ID])), 
        "Amount",  CALCULATE(sum(SF[Amount]), FILTER(SF, RELATED(Calender[Year Month Number]) <= EARLIER(Calender[Year Month Number]) && SF[Customer ID]=EARLIER(SF[Customer ID]))

Syndicate_Admin
Administrator
Administrator

Lo que estoy buscando es que la cantidad no debe ser negativa para el cliente individual.

1. Debe ser un total corriente de clientes individuales

2. El cliente individual no puede salir negativo

Como se ha explicado, creé una columna calculada con cada transacción y la obligué a no salir negativa. El problema con esas soluciones es

1. Cuando ejecuté la suma (total en ejecución) de la columna calculada, añadí múltiples saldos del mismo cliente en el período dado

2. Cuando no resumí (total en ejecución) la columna, los saldos del mes en el que el usuario no tenía ninguna transacción no se mostraron en absoluto.

y donde el cliente tenía múltiples transacciones en un período que lo totalizó también.


En última instancia, creo que esto podría resolverse mediante la creación de una tabla separada basada en estos datos que muestra el saldo mensual del cliente individual si tenían las transacciones o no. (He estado intentando pero no he tenido éxito en este atempt).

Syndicate_Admin
Administrator
Administrator

la columna calculada (saldo) tampoco funciona, si suma la cifra de valores anteriores, se inflan ya que el saldo ya es una suma. Si no lo suma,

  • está agregando múltiples saldos del mismo cliente en un mes
  • no agregar ningún valor de cliente si no tiene una transacción en ese mes

si vamos con un enfoque de saldo, debe mostrar una partida individual mensual por cada cliente cada mes (basado en la última transacción) independientemente de cualquier transacción en ese mes.

No @sjehanzeb,

Cree una medida como se indica a continuación:

Measure = 
CALCULATE(SUM('Table'[Amount]),FILTER(ALL('Table'),'Table'[Date]<=MAX('Table'[Date])&&'Table'[Customer ID]=MAX('Table'[Customer ID])))

Y verás:

v-kelly-msft_0-1614584846636.png

Para el archivo .pbix relacionado, pls ver adjunto.

Saludos
Kelly

¿Respondí a tu pregunta? ¡Marca mi puesto como solución!

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.