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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Relacionar tablas en varias columnas en una medida DAX

Hola

Tengo estas dos tablas no relacionadas:

Price_table

Cliente Date_start_price Date_end_price Precio
101/01/202131/01/20215
101/02/202131/03/20216
201/01/202130/06/20217
201/07/202131/12/20214

Discount_table

Cliente Date_start_discount Date_end_discount Descuento
101/02/202128/02/20211
101/03/202131/03/20214
201/03/202130/04/20212
201/06/202131/9/20213

Siempre filtraré la tabla Precio para una fecha específica (es decir, start<01/2021 && end >01/02/2021) y necesito agregar una medida con el descuento que se aplica en esa fecha:

Price_Table (inicio filtrado<01/2021 y final >01/02/2021)

Cliente Precio @Discount
151
270

¿Cómo puedo conseguir eso?

Gracias.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola @

De acuerdo con su descripción, puedo entender más o menos lo que desea obtener, desea filtrar la tabla de precios para una fecha específica y obtener el descuento basado en la fecha de inicio y finalización, ¿verdad? Creo que puede lograr esto usando medidas y filtro visual en Power BI, puede probar mis pasos:

  1. Cree una tabla Calendar para la segmentación de datos de fecha:
Date = CALENDARAUTO()
  1. Cree dos medidas:
Flag =

var _selectperiod=

SELECTCOLUMNS(ALLSELECTED('Date'),"1",[Date])

return

IF(

    MAX('Price_table'[Date_start_price]) in _selectperiod||

    MAX('Price_table'[Date_end_price]) in _selectperiod,

    1,0

)
Dicsount1 =

var _value=

CALCULATE(

    MAX('Discount_table'[Discount]),

    FILTER(

        ALL(Discount_table),

        [Date_start_discount]<=MAX([Date_start_price])&&

        [Date_end_discount]>=MAX([Date_end_price])&&

        [Client]=MAX([Client])))

return

IF(_value=BLANK(),0,_value)
  1. Cree una segmentación de datos y coloque 'Fecha'[Fecha], y un gráfico de tablas luego colóquela así:

v-robertq-msft_0-1614651650476.png

  1. A continuación, agregue un filtro a este filtro, como este:

v-robertq-msft_1-1614651650488.png

Y puedes conseguir lo que quieras.

Puede descargar mi archivo pbix de prueba aquí

Si este resultado no es el que desea, puede publicar algunos datos de ejemplo (sin datos confidenciales) y su resultado esperado para que podamos ayudarle de antemano.

Cómo obtener respuestas rápidamente a su pregunta

¡Muchas gracias!

Saludos

Equipo de soporte comunitario _Robert Qin

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

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola @

De acuerdo con su descripción, puedo entender más o menos lo que desea obtener, desea filtrar la tabla de precios para una fecha específica y obtener el descuento basado en la fecha de inicio y finalización, ¿verdad? Creo que puede lograr esto usando medidas y filtro visual en Power BI, puede probar mis pasos:

  1. Cree una tabla Calendar para la segmentación de datos de fecha:
Date = CALENDARAUTO()
  1. Cree dos medidas:
Flag =

var _selectperiod=

SELECTCOLUMNS(ALLSELECTED('Date'),"1",[Date])

return

IF(

    MAX('Price_table'[Date_start_price]) in _selectperiod||

    MAX('Price_table'[Date_end_price]) in _selectperiod,

    1,0

)
Dicsount1 =

var _value=

CALCULATE(

    MAX('Discount_table'[Discount]),

    FILTER(

        ALL(Discount_table),

        [Date_start_discount]<=MAX([Date_start_price])&&

        [Date_end_discount]>=MAX([Date_end_price])&&

        [Client]=MAX([Client])))

return

IF(_value=BLANK(),0,_value)
  1. Cree una segmentación de datos y coloque 'Fecha'[Fecha], y un gráfico de tablas luego colóquela así:

v-robertq-msft_0-1614651650476.png

  1. A continuación, agregue un filtro a este filtro, como este:

v-robertq-msft_1-1614651650488.png

Y puedes conseguir lo que quieras.

Puede descargar mi archivo pbix de prueba aquí

Si este resultado no es el que desea, puede publicar algunos datos de ejemplo (sin datos confidenciales) y su resultado esperado para que podamos ayudarle de antemano.

Cómo obtener respuestas rápidamente a su pregunta

¡Muchas gracias!

Saludos

Equipo de soporte comunitario _Robert Qin

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

Gracias hice algunos cambios leves y funciona maravillosamente!

Syndicate_Admin
Administrator
Administrator

@eyesem

en este caso, hay pocas cosas que usted tendrá que hacer

1) crear una tabla de fechas que se utilizará para filtrar datos por fecha y vincular dos tablas

Data_Tab = CALENDARAUTO()

2) cree una tabla más que tendrá valores únicos de ClientIDs de la tabla Precios y descuentos

Cliente = DISTINCT(UNION(DISTINCT(Discount_Tab[Client ]),DISTINCT(Price_Tab[Client ])))
3) luego se crea una relación entre tablas como la siguiente

4) a continuación se muestra el visual que desea tener aquí

También he adjuntado el archivo pbix

Gracias

Gracias

Gracias @negi007

Esto funciona bien para los meses en los que comienza el precio, pero no para los que están en el medio. Por ejemplo, agosto debe mostrar un precio de 4 y descuento de 3 (cliente 2), pero no hay fecha de inicio para agosto en las tablas, eso es lo complicado aquí.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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