Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

¿Columna calculada basada en la combinación de valores únicos?

Espero poder encontrar si esto es posible de cumplir con la columna calculada. Lo que estoy tratando de resolver es crear una nueva columna, (asumiendo que es una solución y no medidas), para poder enumerar los nombres de los clientes donde se asignará TIPO en función del tipo con el saldo más grande en ese momento, Y combiné todos los saldos para ese cliente con el mismo nombre, manteniendo solo el TIPO que estaba asociado con el saldo más grande.

En este ejemplo, a partir de la TABLA 1 quiero crear una columna que tenga CLIENTE-1 mostrando solo el TIPO A, (que tenía el saldo más grande), Y para el mismo CLIENTE-1 muestre el saldo agregado (como se muestra para cada collor). Como se muestra en la TABLA 2.

Por favor, hágame saber si hay manera de lograr esto. ¡Muy apreciado!

Mk60_0-1718387287486.png

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

Hay varias formas de hacerlo. Escribí sobre un par de ellos aquí:

https://stackoverflow.com/questions/52525377/return-top-value-ordered-by-another-column

Esta opción de TOPN es bastante sencilla:

Table2[TYPE] =
VAR T1 = FILTER ( Table1, Table1[CLIENT] = Table2[PRIMARY CLIENT] )
RETURN
    MAXX ( TOPN ( 1, T1, Table1[BALANCE] ), Table1[TYPE] )

Alexix, en primer lugar, muchas gracias por tu respuesta. En segundo lugar, quería aclarar que la TABLA 1 y 2 aquí son solo lo que llamé a mis dos tablas de Excel tratando de explicar mi muestra. Mi tabla de datos se llama "Query1" y los nombres de campo en esa tabla son CLIENT, TYPE y BALANCE. Estaba tratando de ver cómo puedo agrupar todos los clientes como lo tenía en mi excel "TABLA 2", solo como ejemplo. ¿Es la solución correcta de la columna calculada? Mucho tenkful por tu ayuda.

A menos que tenga una razón para crear una segunda tabla física, probablemente sea mejor escribir una medida que pueda usar en una tabla dinámica (en lugar de tener Table2).

Escribirlo como una medida cambia ligeramente las cosas, ya que el filtrado se realiza automáticamente dentro de esa única tabla

Top Type = MAXX ( TOPN ( 1, Query1, Query1[BALANCE] ), Query1[TYPE] )

Alexis, esta medida de "Top Type" sí funciona, pero no me da lo que quiero aquí. Probablemente no pueda explicar mejor a qué tengo que llegar. Espero que este contexto ayude más: estoy usando una sola tabla "Query1" en mi modelo de datos PBi. Tengo miles de CLIENTES y probablemente unos pocos miles de TIPOS y SALDOS para cada registro de cliente. Mi mejor conjetura es que necesitaría una nueva columna con solo una línea/registro para cada slient, según los criterios que traté de explicar en mis tablas anteriores. En ese único registro para cada cliente, mostraría solo el TIPO asociado con el saldo más grande entre todos los registros múltiples para cada cliente único, Y mostraría el saldo agregado en ese mismo registro para cada cliente. Espero que esto pueda ser de más ayuda. Genial por su tiempo y comprensión. Huelga decir que soy realmente nuevo en PBI.

Si me lo permiten, trataré de simplificar un poco más, por favor perdónenme molestarlos con esto:

Entonces, lo que obtengo de mi tabla de datos Query1 es esta lista de clientes con estas columnas: Fecha, Cliente, Tipo y Saldo, (lista de muestra de 3 clientes con múltiples tipos y saldos en la imagen a continuación)

Mk60_0-1718398808738.png

¿Qué cálculo se puede hacer para que pueda obtener una lista de clientes individuales, solo enumerados una vez, pero con solo un valor para "Tipo" que tenía el saldo más grande para cada cliente, Y mostrar un saldo agregado único como en la lista a continuación:

Mk60_1-1718399010883.png

Una vez más, ¡perdón por molestar y realmente aprecio cualquier pensamiento sobre esto!

¡Mejor!

Si cargo tus datos en una tabla como esta:

AlexisOlson_0-1718405839900.png

A continuación, puedo crear un objeto visual de matriz como este utilizando la medida que definí anteriormente:

AlexisOlson_1-1718405890861.png

Esto es lo que entendí que era su petición. ¿Qué me estoy perdiendo?

Hola Alexis, tengo una pregunta aparte, y dado que está directamente relacionada con la muestra para la que me diste solución, sentí que debería intentar preguntarte de nuevo directamente, si podrías tener la amabilidad de proporcionar una solución a esta pregunta. Lo que necesito es básicamente usar el saldo total en su muestra anterior (que es un subtotal de esos clientes solamente), y usar ese saldo como numerador en otro cálculo para obtener el porcentaje del saldo total (que es un saldo más grande que ya tengo como atributo en mis datos). Entonces, ¿siento que necesito definir alguna nueva medida de alguna manera para este saldo total de 20,253,600.75? Espero que pueda tener alguna solución de dax para que pueda cumplir con eso. Muchas gracias de antemano, una vez más.

Mk60_0-1718744995470.png

Alexis, mientras intentaba trabajar en tu cálculo con mis datos reales, me di cuenta de que esto debería funcionar para lo que estoy tratando de lograr, ya que estoy haciendo coincidir los clientes y los tipos como se esperaba. Veo que está usando el objeto visual Matrix en su ejemplo de PBI, y yo estaba usando el objeto visual Tabla en su lugar en mi caso, pero supongo que eso no debería importar. Lo que estoy tratando de limpiar ahora, (en ambas versiones visuales), es que solo quiero mantener el total para la columna Balance, pero no para "Top Type" o cualquier otra columna que pueda incluir, como donde tienes C en tu fila Total. Estaba navegando a través del formato visual y parece que puedo eliminar los totales de las filas por completo o tenerlos para todas las columnas, pero no solo para la columna seleccionada. Algún consejo al respecto, pero estoy muy feliz de decirte que tu solución podría ser justo lo que necesito. Solo tendré que ajustar y cambiar el nombre de algunos atributos para mi objeto visual de tabla. Le agradezco sinceramente que se quede conmigo con esto, y su dedicación y disposición para ayudar a los nuevos usuarios de PBI. Es un placer encontrarse con súper usres como tú. Espero volver a conectarnos.

Puede suprimir la línea total mediante ISINSCOPE en la medida o establecer el subtotal por nivel de columna como se menciona en este hilo:

https://community.fabric.microsoft.com/t5/Desktop/Remove-totals-and-sub-totals-for-some-columns-in-a...

Top Type =
IF (
    ISINSCOPE ( Query1[CLIENT] ),
    MAXX ( TOPN ( 1, Query1, Query1[BALANCE] ), Query1[TYPE] )
)

¡Muchas gracias de nuevo, Alexis! Su solución de fórmula dax funcionó para mi medida. También revisé el hilo que mencionaste aquí, en caso de que necesite un total de columna específico en algún momento, pero para ser honesto, estas capturas de pantalla son de algunas versiones antiguas que ni siquiera las veo en mi versión de mayo de 2024 de Desktop. Usé una fuente blanca para hacer que todo sea invisible, pero verificaré si puedo encontrar opciones similares en las nuevas versiones. De todos modos, ¡agradezco mucho su ayuda!

¡Todo lo mejor!

Marin

Syndicate_Admin
Administrator
Administrator

Pequeño error de mi parte, el CLIENTE-3 debería tener TIPO A, porque era uno con saldo de largets. Lo siento:

Mk60_0-1718387707581.png

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

Check out the July 2024 Power BI update to learn about new features.

July Newsletter

Fabric Community Update - July 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors