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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo mostrar la suma de dos combinaciones posibles de valores de dos columnas en una matriz?

Querida comunidad de Power BI,

He escaneado el foro pero no podría conseguir cualquier solución para trabajar para la declaración de problema siguiente:

Tengo una tabla con varias columnas cargadas en Power BI Desktop a través de Direct Query con una conexión db2. Estoy tratando de crear una matriz que muestra una combinación de columna 1 y columna 2 en las filas, por ejemplo, AAA_BBB. Debe sumar todas las filas de la combinación AAA_BBB. Esto se hace fácilmente simplemente arrastrando la columna 3 (cantidades) a valores en la matriz con una columna combinada (columna 1 y 2) en las filas. A continuación, me gustaría mostrar la combinación inversa, por ejemplo, BBB_AAA en el área Valores. El objetivo es resaltar las diferencias entre el total de combinaciones coincidentes, por ejemplo, AAA_BBB es 10 pero BBB_AAA es 8. Debe ser igual. ¿Alguien tendría alguna sugerencia para que la fórmula de medida (o columna calculada?) se mueva a la implementación deseada?

Ejemplo de datos:

Columna 1Columna 2Columna 3
AaaCcc10
AaaBbb5
CccBbb4
BbbCcc3
CccAaa10
BbbAaa8
AaaBbb2
AaaBbb3
BbbCcc1

Implementación deseada:

Columna 1 x 2Combinación de importe 1Combinación de importe 2diferencia
AAA_BBB1082
AAA_CCC10100
BBB_CCC440

Gracias de antemano por sus sugerencias.

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

No @An0n ,

Si desea ordenar por [Diferencia], puede hacerlo directamente.

Seleccione los puntos suspensivos, seleccione Ordenar por-[Diferencia] y ordene descendente.

vyangliumsft_0-1626416893548.png

Saludos

Liu Yang

Si este post ayuda, entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente

Gracias por esta sugerencia, que de hecho resolvería el problema de clasificación.

¿Podrías echar un vistazo a cómo adaptar la parte "IN AAA_BBB, AAA_CCC, BBB_CCC" a continuación? En el conjunto de datos hay muchos más (alrededor de 50) valores de AAA, BBB, etc. y la cantidad de diferentes combinaciones y nuevos valores cambia de un período a otro.

Amount Combination 1 =
CALCULATE(
    SUM('Table'[Column 3]),
    FILTER(ALL('Table'),'Table'[Column 1 x 2]=MAX('Table'[Column 1 x 2])&&'Table'[Column 1 x 2]IN {"AAA_BBB","AAA_CCC","BBB_CCC"}))

Syndicate_Admin
Administrator
Administrator

No @An0n ,

Estos son los pasos que puede seguir:

1. Crear columna calculada.

Column 1 x 2 = 'Table'[Column 1]&"_"&'Table'[Column 2]

2. Crear medida.

Amount Combination 1 =
CALCULATE(
    SUM('Table'[Column 3]),
    FILTER(ALL('Table'),'Table'[Column 1 x 2]=MAX('Table'[Column 1 x 2])&&'Table'[Column 1 x 2]IN {"AAA_BBB","AAA_CCC","BBB_CCC"}))
Amount Combination 2 =
VAR _PIN=MAX('Table'[Column 2])&"_"&MAX('Table'[Column 1])
return
IF([Amount Combination 1]=0,BLANK(),
CALCULATE(SUM('Table'[Column 3]),FILTER(ALL('Table'),[Column 1 x 2]=_PIN)))
Difference = [Amount Combination 1]-[Amount Combination 2]

3. Resultado:

vyangliumsft_0-1625537714045.png

Saludos

Liu Yang

Si este post ayuda, entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente

Hola Liu Yang,

Gracias por su respuesta. El AAA BBB y el CCC eran apenas como ejemplo, hay realmente alrededor 60 entradas y así un múltiplo de eso como posibilidades (no todas las combinaciones existen, e.g. XXX y TTT). Tampoco hay ningún requisito para ordenar la columna 1 x 2 de ninguna manera, lo importante es que la diferencia se puede ordenar de alto a bajo. Espero que esto ayude y esperamos su sugerencia.

Syndicate_Admin
Administrator
Administrator

Gracias por la sugerencia. Sin embargo, la combinación de AAA y BBB debe mostrarse en una columna y como una sola entrada de fila (AAA_BBB debe mostrarse, sin BBB_AAA). Hay cientos de combinaciones en el conjunto de datos original, por lo que debería ser fácil ver la diferencia de la suma para esta posible combinación.

Gracias Jihwan_Kim, la solución está tomando forma. Desafortunadamente me encontré con el siguiente error: la columna calculada Rank CC no funciona porque la función 'RANKX' no está permitida como parte de las expresiones DAX de columna calculada en los modelos DirectQuery y estoy usando un modelo DirectQuery.

https://www.dropbox.com/s/1p7uhxi1ulzsrvo/anon.pbix?dl=0

Clasificación =
RANKX ( ALL(Data[AB Axis CC]), CALCULATE(MAX(Data[AB Axis CC])),, ASC )

Total de la combinación de AB: =
VAR _currentrank = [Ranking]
VAR _currentaxis =
MAX ( Datos [Eje AB CC] )
VAR _currentA =
MAX ( Datos[A] )
VAR _currentB =
MAX ( Datos[B] )
VAR _newtable =
ADDCOLUMNS (
TODOS ( Datos ),
"@Rank", RANKX ( ALL ( Data[AB Axis CC] ), Data[AB Axis CC],, ASC )
)
devolución
SI (
COUNTROWS (
FILTRO (
_newtable,
Datos[EJE AB CC] <> _currentaxis
&& Datos[A] = _currentB
&& Datos[B] = _currentA
&& [@Rank] < _currentrank
)
) >= 1,
EN BLANCO (),
IF ( ISFILTERED ( Data[AB Axis CC] ), SUM ( Data[Value] ) )
)

Agradezco mucho el esfuerzo. Parece que me estoy topando con un error final: "El conjunto de resultados de una consulta a un origen de datos externo ha superado el tamaño máximo permitido de las filas '1000000'".

También estaba buscando mostrar esto en formato Matrix, para poder escalar la visualización más adelante al tener otras columnas del conjunto de datos como filas.

Tal y como yo lo entiendo actualmente, la clasificación no es necesaria. La columna AB Axis CC puede tener las combinaciones ordenadas de cualquier manera, no tiene que ser alfabéticamente. El único requisito es poder ordenar la columna Diff de alto a bajo.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

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

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.