Flujo de transacciones: SUMIF modificado en DAX, según la categoría

Un usuario Pregunto ✅

Hola

Tengo una siguiente tabla de transacciones. Se pueden hacer dentro o fuera de la organización. Si está dentro, puede haber transferencias de efectivo entre subcuentas. ¿Cómo puedo mostrar el saldo de cada subcuenta en una matriz?

En Excel es simplemente SUMIF (cantidad de la fuente) – SUMIF (cantidad del destinatario) –> se muestra en esas dos columnas a la derecha de la pantalla.

Ahora92Jah_1-1631786178985.png

¿Cómo puedo volver a crear dichos saldos en DAX?

¡Gracias de antemano!

En respuesta a Syndicate_Admin

@Now92Jah Recomendaría una tabla separada para las cuentas. Puede crear esto en Power Query o en DAX como:

Accounts Table = 
  DISTINCT(
    UNION(
      SELECTCOLUMNS('Table',"Account",[Subaccount_from]),
      SELECTCOLUMNS('Table',"Account",[Subaccount_to])
    )
  )

A, a continuación modificaría la medida:

Measure 2 = 
    VAR __Account = MAX('Accounts Table'[Account])
RETURN
    SUMX(FILTER(ALL('Table7'),[Subaccount_to]=__Account),[Amount]) - 
    SUMX(FILTER(ALL('Table7'),[Subaccount_from]=__Account),[Amount]) + 0

En el objeto visual, utilice la medida y la columna Cuenta de la tabla Cuentas.

@Now92Jah Puede utilizar SUMX(FILTER(…),…) o CALCULATE con cláusulas de filtro para emular SUMIF en Excel. Escribí toda una serie de entradas de blog sobre Excel a DAX: Traducción de Excel a DAX – Microsoft Power BI Community

En respuesta a Syndicate_Admin

Hola @Greg_Deckler,
Gracias por su respuesta.

Pero necesito aplicarlo a todo el grupo de subcuentas, no a cada uno individualmente. Para que se cree la matriz.
El uso del filtro muestra espacios en blanco en la matriz.

En respuesta a Syndicate_Admin

@Now92Jah Lo sentimos, si tiene problemas para seguir, ¿puede publicar datos de muestra como texto y salida esperada?
No hay realmente suficiente información para continuar, primero verifique si su problema es un problema común que se enumera aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba- p/1116882

Además, consulte esta publicación sobre Cómo obtener respuestas rápidas a su pregunta: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, use la herramienta de tabla en la barra de edición
2. Resultado esperado de los datos de la muestra
3. Explicación en palabras de cómo llegar desde 1. a 2.

En respuesta a Syndicate_Admin

@Greg_Deckler, claro, aquí están las cosas que estás preguntando:

1. Datos de muestra:

ID de transacción Fecha de Transacción Subcuenta_desde Asunto_de Subcuenta_a Asunto_a importar
1 10.09.2021 A 1 B 2 6 001,81
2 10.09.2021 B 2 mi 5 2 867,00
3 10.09.2021 B 2 D 3 2 133,00
4 10.09.2021 D 3 F 3 100,00
5 10.09.2021 D 3 H 3 100,00
6 10.09.2021 D 3 I 3 120,00
7 10.09.2021 D 3 j 3 100,00
8 10.09.2021 D 3 k 3 100,00
9 10.09.2021 D 3 L 3 100,00
10 10.09.2021 D 3 METRO 3 950,00
11 10.09.2021 D 3 norte 3 33,00
12 12.09.2021 GRAMO 4 D 3 2 000,00
13 12.09.2021 D 3 F 3 100,00

2. Resultado esperado – una matriz visual / con la siguiente estructura:

Subcuenta_nombre** Saldo*
A -6001,81
B 1001,81
C 0,00
D 2430,00
mi 2867,00
F 200,00
GRAMO -2000,00
H 100,00
I 120,00
j 100,00
k 100,00
L 100,00
METRO 950,00
norte 33,00

*Saldo – muestra el flujo de transacciones entre subcuentas. Lo que significa que tenemos que agregar al saldo todos los ingresos y restaurar todos los resultados. En Excel uso SUMIF dos veces.
**Subaccount_name – es una lista de otra tabla (TB_Subaccounts), donde solo hay nombres únicos de cada subcuenta, conectado a través de la relación con la tabla TB_Transactions.

Aquí hay un diagrama de relación completo, si lo necesita, con la parte principal descrita por marcos coloridos:

Ahora92Jah_1-1631802157005.png

Además, revisé esos enlaces y no puedo encontrar una solución para mi problema.

En respuesta a Syndicate_Admin

@ Now92Jah Prueba:

Measure 2 = 
    VAR __Account = MAX('Table7'[Subaccount_from])
RETURN
    SUMX(FILTER(ALL('Table7'),[Subaccount_to]=__Account),[Amount]) - 
    SUMX(FILTER(ALL('Table7'),[Subaccount_from]=__Account),[Amount])

En respuesta a Syndicate_Admin

@Greg_Deckler , desafortunadamente, el resultado es solo espacios en blanco en la matriz.

En respuesta a Syndicate_Admin

@Now92Jah Consulte la página 4 del PBIX adjunto.

En respuesta a Syndicate_Admin

@Greg_Deckler, gracias por el archivo.
Esto muestra solo el saldo en los recuentos de donde van las transacciones, mientras que necesito saldos para todos los recuentos. En la página 4 solo hay 4, mientras que en la tabla tenemos 13 cuentas en total.

En respuesta a Syndicate_Admin

@Now92Jah Recomendaría una tabla separada para las cuentas. Puede crear esto en Power Query o en DAX como:

Accounts Table = 
  DISTINCT(
    UNION(
      SELECTCOLUMNS('Table',"Account",[Subaccount_from]),
      SELECTCOLUMNS('Table',"Account",[Subaccount_to])
    )
  )

A, a continuación modificaría la medida:

Measure 2 = 
    VAR __Account = MAX('Accounts Table'[Account])
RETURN
    SUMX(FILTER(ALL('Table7'),[Subaccount_to]=__Account),[Amount]) - 
    SUMX(FILTER(ALL('Table7'),[Subaccount_from]=__Account),[Amount]) + 0

En el objeto visual, utilice la medida y la columna Cuenta de la tabla Cuentas.

En respuesta a Syndicate_Admin

@Greg_Deckler, gracias, estoy un paso más cerca del resultado.

En realidad, ya tengo la tabla con todas las subcuentas, llamada TB_Subaccounts.
Así que cambiando la medida a esa tabla da el resultado extendido.

Pero, por otro lado, esta medida muestra solo los saldos de las cuentas, en las que se realizaron transacciones.
¿Hay alguna modificación, para mostrar todos los saldos, incluso en subcuentas sin transacciones (todavía) en ellas?

En respuesta a Syndicate_Admin

@Now92Jah Bueno, ese era el propósito de agregar el +0 en el extremo para obligar a la visual a devolver saldos sin transacciones. Si tiene una tabla separada con saldos actuales, solo necesitaría obtener ese valor y luego agregarlo a la declaración RETURN como + [saldo existente].

Siento que estoy trabajando con la mitad de la información aquí, así que no estoy seguro.

En respuesta a Syndicate_Admin

@Greg_Deckler, no precisamente, en mi modelo solo tengo la tabla con los nombres de las subcuentas, no de los saldos.
Pero el truco con agregar 0 defectos, después de algunas modificaciones en mi modelo. ¡Gracias!

Deja un comentario

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