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

Level up your Power BI skills this month - build one visual each week and tell better stories with data! Get started

Reply
Syndicate_Admin
Administrator
Administrator

JOIN Valor A de la tabla A a la tabla B, donde A está entre dos valores

Hola

La tabla A contiene un conjunto de resultados por empleado por semana.

EmpleadoClave de la semanaResultado
123452025052616
123452025060220
123452025060918

La tabla B contiene un objetivo por empleado con un intervalo de fechas de semana

EmpleadoDesdeSemanaToWeekBlanco
12345202505052025052621
12345202506022025063020

Lo que quiero hacer es unirme a estos en Employee Y donde A.WeekKey BETWEEN B.FromWeek y B.ToWeek

El resultado sería:

EmpleadoClave de la semanaResultadoBlanco
12345202505261621
12345202506022020
12345202506091820

Cualquier idea y sugerencia es muy apreciada.

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Gracias a los dos. Tuve cierto éxito con ambas opciones, pero al final no pude entregar lo que necesitaba en el tiempo permitido, así que lo eliminé e hice la mayor parte del trabajo pesado en Oracle SQL

Volveré aquí más tarde para volver a intentarlo, ya que creo que esto debería funcionar y funcionará y ayudará a mi aprendizaje.

Muchas gracias a ti por tomarte el tiempo de ayudar.

Phil

@PBI_Inquisitor,

Gracias por ponerse en contacto con la comunidad de Microsoft Fabric.

Gracias @Ashish_Excel, @samratpbi y @SamsonTruong por la pronta respuesta.

Gracias por la respuesta, Como no hemos tenido noticias suyas, queríamos hacer un seguimiento amable para verificar si el problema está resuelto. O háganos saber si necesita más ayuda.
Si alguna respuesta ayudó a resolver el problema, márquela como "Aceptar como solución" y haga clic en "Sí" si le resultó útil.

Gracias y saludos,

Anjan Kumar Chippa

@PBI_Inquisitor,

Como no hemos tenido noticias suyas, queríamos hacer un seguimiento amable para verificar si el problema se resuelve.
Si alguna respuesta ayudó a resolver el problema, márquela como "Aceptar como solución" y haga clic en "Sí" si le resultó útil.

Gracias y saludos,

Anjan Kumar Chippa

Syndicate_Admin
Administrator
Administrator

Hola

Esta fórmula de columna calculada en la Tabla 1 funciona

=CALCULATE(SUM(Table2[Target]),FILTER(Table2,Table2[Employee]=EARLIER(Table1[Employee])&&Table2[FromWeek]<=EARLIER(Table1[WeekKey])&&Table2[ToWeek]>=EARLIER(Table1[WeekKey])))

Espero que esto ayude.

Ashish_Excel_0-1749513847594.png

Syndicate_Admin
Administrator
Administrator

Hola, hay muchas maneras de lograr esto. Una es usar LOOPUPVALUE y llevar el valor de una tabla a otra. Sin embargo, lo mejor sería unir las tablas en Power Query. Puede combinar 2 tablas en función de varias columnas.

Creé 2 tablas:

T1:

samratpbi_0-1749499540140.png


T2:

samratpbi_1-1749499562645.png

A continuación, combine T2 en T1 con la columna Empleado. A continuación, agregue una columna condicional:

si [WeekKey] >= [T2. FromWeek] y [WeekKey] <= [T2. ToWeek] entonces 1 else 0

A continuación, filtre solo los valores con 1.

A continuación se muestra la Power Query:

vuelo
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQyNjFV0lEyMjAyNTA1MgMyDc2UYnXQZMwMjMBMbDKWID0WSrGxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) en la tabla de tipos [Employee = _t, WeekKey = _t, Result = _t]),
#"Tipo cambiado" = Tabla.TransformColumnTypes(Fuente,{{"Empleado", Int64.Tipo}, {"WeekKey", Int64.Tipo}, {"Resultado", Int64.Tipo}}),
#"Consultas combinadas" = Table.NestedJoin(#"Tipo cambiado", {"Empleado"}, T2, {"Empleado"}, "T2", JoinKind.Inner),
#"Expanded T2" = Table.ExpandTableColumn(#"Consultas combinadas", "T2", {"FromWeek", "ToWeek", "Target"}, {"T2. FromWeek", "T2. ToWeek", "T2. Objetivo"}),
#"Columna condicional agregada" = Table.AddColumn(#"T2 expandido", "Personalizado", cada uno si [WeekKey] >= [T2. FromWeek] y [WeekKey] <= [T2. ToWeek] entonces 1 else 0),
#"Filas filtradas" = Tabla.SelectRows(#"Columna condicional agregada", cada una ([Personalizada] = 1)),
#"Columnas eliminadas" = Table.RemoveColumns(#"Filas filtradas",{"T2. FromWeek", "T2. ToWeek", "Personalizado"})
en
#"Columnas eliminadas"

El resultado es:

samratpbi_2-1749499690604.png

Si esto ayuda a resolver su problema, márquelo como solución. ¡No te olvides de felicitar! -Gracias

Syndicate_Admin
Administrator
Administrator

Hola @PBI_Inquisitor , ¿está tratando de lograr esto en PowerQuery o como una tabla calculada?

Suponiendo que está intentando hacer esto en una tabla calculada de DAX, pruebe lo siguiente DAX:

JoinedTable =
SELECTCOLUMNS (
    FILTER (
        CROSSJOIN ( TableA, TableB ),
        TableA[Employee] = TableB[Employee]
            && TableA[WeekKey] >= TableB[FromWeek]
            && TableA[WeekKey] <= TableB[ToWeek]
    ),
    "Employee", TableA[Employee],
    "WeekKey", TableA[WeekKey],
    "Result", TableA[Result],
    "Target", TableB[Target]
)

Si esto ayudó, márquelo como la solución para que otros también puedan beneficiarse. Y si lo encontró útil, siempre se agradecen las felicitaciones.

Gracias

Samson

Conéctate conmigo en LinkedIn (en inglés)

Echa un vistazo a mi Blog

¿Vas a asistir a la Conferencia Europea de la Comunidad Microsoft Fabric? Echa un vistazo a mi Sesión

Helpful resources

Announcements
April Power BI Update Carousel

Power BI Monthly Update - April 2026

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

Fabric SQL PBI Data Days

Data Days 2026 coming soon!

Sign up to receive a private message when registration opens and key events begin.

New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.