Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola, tengo un problema con la eficiencia de una solución a un problema. ¿Alguien tiene sugerencias de mejora para mejorar la velocidad?
Tengo la configuración básica en El escritorio de Power BI, pero la solución (ver más abajo) del problema (véase más adelante) es demasiado lenta. Mis datos suelen oscilar entre 50 000 y 1 000 000 filas, por lo que el bucle "encontrar" es probablemente demasiado lento. ¿Alguna sugerencia para una solución más eficiente?
Problema
Para las personas familiarizadas con la contabilidad: me gustaría ver a dónde van las entradas de una cuenta. Como en "otro lado de una entrada de diario".
Básicamente los datos son esto como en la siguiente tabla:
Cuenta | Identificador | Suma |
1000 | 565 | 100o |
1100 | 565 | 20o |
1200 | 565 | -120o |
1200 | 572 | -101o |
1300 | 572 | 50o |
1400 | 572 | 50o |
1500 | 572 | 1o |
1600 | 577 | -5000o |
1600 | 577 | 5000o |
Por supuesto, habrá cientos de miles de líneas. Pero la regla es:
1. Todos los identificadores (565 por ejemplo) iguales a cero en el campo Suma.
Gol:
Me gustaría crear un tablero, donde puedo filtrar la cuenta 1200 y me presentaría lo siguiente:
Cuenta | |
1000 | 100o |
1100 | 20o |
1300 | 50o |
1400 | 50o |
1500 | 1o |
¿Cómo empiezo a crear esto? Así que la función sería así:
Filtre todos los identificadores que están en la cuenta 1200 (565 y 572 en este caso).
Si la cuenta <> 1200 entonces SUMA los valores de estos identificadores y mostrar a qué cuenta están asignados
Solución:
Solved! Go to Solution.
Cree una tabla adicional usando dax a continuación:
Account = DISTINCT('Table'[Account])
A continuación, cree la segmentación de datos basada en la nueva tabla 'Cuenta' y cree la medida utilizando dax a continuación:
Result =
VAR SelectedAccount = SELECTEDVALUE(Account[Account])
RETURN
CALCULATE(SUM('Table'[Sum]), FILTER(ALL('Account'), 'Account'[Account] <> SelectedAccount))
También puede hacer referencia a pbix adjunto.
Equipo de Apoyo Comunitario _ Jimmy Tao
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Cree una tabla adicional usando dax a continuación:
Account = DISTINCT('Table'[Account])
A continuación, cree la segmentación de datos basada en la nueva tabla 'Cuenta' y cree la medida utilizando dax a continuación:
Result =
VAR SelectedAccount = SELECTEDVALUE(Account[Account])
RETURN
CALCULATE(SUM('Table'[Sum]), FILTER(ALL('Account'), 'Account'[Account] <> SelectedAccount))
También puede hacer referencia a pbix adjunto.
Equipo de Apoyo Comunitario _ Jimmy Tao
Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola
En realidad, esto tiene un pequeño problema con él. Si i segmenta varios elementos, muestra el otro lado de la entrada del diario, sí, pero también muestra las cuentas que he seleccionado. Por lo tanto, la selección inversa no funciona con varios elementos. ¿Hay una solución para esto?
¡Gracias!
Hola
Gracias, elegante y eficiente! Necesito seguir investigando esto, ya que realmente no entiendo por qué las relaciones son necesarias en segundo plano y si me gustaría agregar una segunda columna al filtro y la tabla (por ejemplo, nombre de cuenta) se descompone.
Pero estos son problemas que deberían ser resueltos por mí ahora que tengo el núcleo.
¡Gracias!