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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
Syndicate_Admin
Administrator
Administrator

Obtener nombres de columna de las tablas de dimensiones respectivas donde rev>10 y rev%>0.06

Hola a todos


Tengo 3 tablas de dimensiones, estas 3 tablas no tienen ninguna relación entre ellas. No hay una columna común para realizar la combinación.

1. Tabla DimMU con columna "mu"
2. Tabla DimRB con columna RB

3. Tabla DimClient con columna de cline

Tengo 2 medidas, rev, rev% (los cálculos se realizan en tiempo de ejecución). Los valores se han calculado sobre tablas de hechos.

Necesito obtener Mu, RB, nombres de clientes de las respectivas tablas de dimensiones donde rev>10 y rev%>0.06.

He escrito un dax, que funciona correctamente para MU. Pero también tengo que incluir a RB y Client.

DAX:

rev>10_rev%>5AcrossMUs =

CONCATENATEX.

FILTRO(

VALORES(DimMU[MU]),

[Rev] > 10 y [Rev%] > 0.06)

),

DimMU[MU],

", "

)

Los datos de la tabla son como:

DIm MU

NosotrosEn
123India
124América
125Australia
126Canadá
127África


Tabla RB

ReidRb
1hierro
2acero
3plástico
4textil

Tabla de clientes

ID de clienteNombre del cliente
501manzana
502mango
503plátano
504Strwberry
505guayaba
506piña
507granada

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola a todos, Bueno, tengo una solución.

En primer lugar, la medida "rev" se calculaba sobre Fact_A tabla y la medida "rev%" se calculaba sobre Fact_B tabla. Estas 2 tablas de datos no tenían relación entre sí. Y no había una tabla de dimensiones común conectada con estas 2 tablas de hechos. No hay conexión común.

En segundo lugar, estaba tratando de obtener MU de DimMU y RB de las tablas de DimRB. Las 2 columnas provenían de 2 tablas de dimensiones diferentes y quería filtrarlas juntas.

Así que lo que tuve que hacer es...

- Tuve que crear una nueva tabla de dimensiones en la pestaña de modelado de Power BI usando el siguiente DAX-


CrossJoinTable =
COMBINACIÓN CRUZADA(
DimMU,
DimRB
)

La función CROSSJOIN de DAX genera un producto cruzado de dos tablas, combinando cada fila de la primera tabla con cada fila de la segunda tabla.

  • Administrar relaciones (opcional): después de crear la tabla de combinación cruzada, es posible que desee deshabilitar las relaciones entre Tabla1 y Tabla2 para evitar comportamientos no deseados en los informes. Para ello, vaya al cuadro de diálogo Administrar relaciones.

- Ahora, en esta tabla calculada recién creada, creo una columna con DAX para concatar MU y RB
Dax:
-Concatatenate(CrossJoinTable[MU],concatenate("-",CrossJoinTable[RB]))=> que devolvía datos en combinación de india-textil, india-hierro, etc.

Próximo
- En Fact_A tabla, escribió la función de búsqueda para obtener el nombre de MU, el nombre de RB y, a continuación, cree una columna calculada que concatene los nombres de mu+Rb igual que los anteriores.
- En Fact_B tabla, escriba la función de búsqueda para obtener el nombre de MU, el nombre de RB y, a continuación, cree una columna calculada que concatene los nombres de mu + Rb igual que los anteriores

Dax:

MU_Name = LOOKUPVALUE(DimMU[MU],DimMU[MUid],Fact_A[MUid])
rb_Name = LOOKUPVALUE(Dimrb[rb],Dimrb[rbid],Fact_A[rbid])

MU_RB = CONCATENAR(Fact_A[MU_Name], CONCATENAR("-",Fact_A[RB_Name]))


Un dax similar para Fact_B tabla.

-Ahora tenemos una columna común en las 3 tablas con una combinación de columna MU+RB.

Ahora creé relaciones:

- relación entre Fact_A y CrossJoinTable - muchos a 1, unir la condición MU+RB columna.
-relación entre Fact_B y CrossJoinTable - muchos a 1, unir la condición MU+RB columna.

Ahora escribí Dax de la siguiente manera:

rev_greaterThan_10_revPercent_greaterThan_5_Across_MU_RB =

CONCATENATEX(

FILTRO(

VALORES(articulable cruzada[MU_RB]),

[Rev] >10 &&

[Rev%] > 0.06

),

articulable transversal[MU_RB],

", "

)

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hola a todos, Bueno, tengo una solución.

En primer lugar, la medida "rev" se calculaba sobre Fact_A tabla y la medida "rev%" se calculaba sobre Fact_B tabla. Estas 2 tablas de datos no tenían relación entre sí. Y no había una tabla de dimensiones común conectada con estas 2 tablas de hechos. No hay conexión común.

En segundo lugar, estaba tratando de obtener MU de DimMU y RB de las tablas de DimRB. Las 2 columnas provenían de 2 tablas de dimensiones diferentes y quería filtrarlas juntas.

Así que lo que tuve que hacer es...

- Tuve que crear una nueva tabla de dimensiones en la pestaña de modelado de Power BI usando el siguiente DAX-


CrossJoinTable =
COMBINACIÓN CRUZADA(
DimMU,
DimRB
)

La función CROSSJOIN de DAX genera un producto cruzado de dos tablas, combinando cada fila de la primera tabla con cada fila de la segunda tabla.

  • Administrar relaciones (opcional): después de crear la tabla de combinación cruzada, es posible que desee deshabilitar las relaciones entre Tabla1 y Tabla2 para evitar comportamientos no deseados en los informes. Para ello, vaya al cuadro de diálogo Administrar relaciones.

- Ahora, en esta tabla calculada recién creada, creo una columna con DAX para concatar MU y RB
Dax:
-Concatatenate(CrossJoinTable[MU],concatenate("-",CrossJoinTable[RB]))=> que devolvía datos en combinación de india-textil, india-hierro, etc.

Próximo
- En Fact_A tabla, escribió la función de búsqueda para obtener el nombre de MU, el nombre de RB y, a continuación, cree una columna calculada que concatene los nombres de mu+Rb igual que los anteriores.
- En Fact_B tabla, escriba la función de búsqueda para obtener el nombre de MU, el nombre de RB y, a continuación, cree una columna calculada que concatene los nombres de mu + Rb igual que los anteriores

Dax:

MU_Name = LOOKUPVALUE(DimMU[MU],DimMU[MUid],Fact_A[MUid])
rb_Name = LOOKUPVALUE(Dimrb[rb],Dimrb[rbid],Fact_A[rbid])

MU_RB = CONCATENAR(Fact_A[MU_Name], CONCATENAR("-",Fact_A[RB_Name]))


Un dax similar para Fact_B tabla.

-Ahora tenemos una columna común en las 3 tablas con una combinación de columna MU+RB.

Ahora creé relaciones:

- relación entre Fact_A y CrossJoinTable - muchos a 1, unir la condición MU+RB columna.
-relación entre Fact_B y CrossJoinTable - muchos a 1, unir la condición MU+RB columna.

Ahora escribí Dax de la siguiente manera:

rev_greaterThan_10_revPercent_greaterThan_5_Across_MU_RB =

CONCATENATEX(

FILTRO(

VALORES(articulable cruzada[MU_RB]),

[Rev] >10 &&

[Rev%] > 0.06

),

articulable transversal[MU_RB],

", "

)

Syndicate_Admin
Administrator
Administrator

@Sania-F , para el cliente necesita tener una medida como

rev>10_rev%>5AcrossClients =
CONCATENATEX(
FILTRO(
VALUES(DimClient[nombre del cliente]),
[Rev] > 10 & [Rev%] > 0.06
),
DimClient[nombre del cliente],
", "
)

Hola @amitchandak , necesito filtrar y mostrar el nombre de MU, el nombre de RB juntos.

ejemplo: para MU India, hierro Rb la revolucion es >10 y el % de revoluciones es >0.06

Los datos son los siguientes:

si veo rev y rev% solo para MU, a continuación se muestra cómo se ven los datos:
Cuando filtro en dax basado en MU, para rev>10 , 3 MU satisfacen la condición. Pero el % de revoluciones nada satisface la condición >0.06. Así que mi dax está devolviendo en blanco.

En

Rev

% de revoluciones

India

36

0.045

Australia

23

0.03

América

19

0.01

Canadá

10

0.02

África

10

0.03


Cuando aplico el filtro en el nivel MU y RB juntos, la condición rev> 10 y rev% >6 se satisface en mi Excel. Pero necesito la fórmula DAX para obtener los mismos resultados en mi Power BI. ¿Cómo puedo hacer eso?

En

RB

Rev

% de revoluciones

India

hierro

12

0.08

acero

10

0.03

plástico

9

0.05

textil

5

0.02

Australia

hierro

1

0.03

acero

4

0.01

Platic

7

0.03

textil

11

0.04

América

Hierro

3

0.01

acero

1

0.06

plástico

8

0.02

textil

7

0.04

Canadá

Igual que las 4 categorías anteriores

10

África

Igual que abov 4 categorías

10



Gracias de antemano por su ayuda.

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

February Power BI Update Carousel

Power BI Monthly Update - February 2026

Check out the February 2026 Power BI update to learn about new features.