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

The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!

Reply
Syndicate_Admin
Administrator
Administrator

Unió exterior izquierda desde el hecho hasta la tabla dim y dim filtrada por la entrada del usuario

Hola equipo,

Estaba teniendo problemas con este requisito de usuario, así que, ¿alguien podría ayudarme, por favor?

El requisito es

Tengo dos tablas: Fact y Dim, digamos Ventas y Producto.

La tabla de ventas es una tabla de ventas normal donde se guarda la clave ID del producto y otras columnas.

Product Table tiene las filas como productid, name, category, validfrom y validto

Así que el mismo producto puede tener nombres diferentes entre intervalos de tiempo, por ejemplo:

ID del productoNombreCategoríavalidfromvalidto
1AX01-01-190001-12-2014
1BX01-01-201501-12-9999
2CY01-01-200001-12-9999
3DY01-01-190001-12-2014
3DY01-01-201501-12-9999

El chip de relación entre ventas y producto es de muchos a muchos.

La salida esperada es

El usuario necesita un visual de tabla y un segmentador de fechas

La tabla con todas las filas de ventas de la izquierda y solo las filas coincidentes de la tabla de productos no emparejadas debería mostrar vacía

Date Slecer: Cuando se seleccionó la fecha y si entra en el rango de fechas validfrom nd validTo de la tabla de productos, solo se deben mostrar esas filas en la imagen de la tabla con el resto de los nombres de los productos en blanco.

¿cómo puedo conseguirlo...?

Cosas que probé

Enfoque 1

Creé la tabla de fechas y el Data Col tiene un segmentador y creé una medida para comprobar si eso entra dentro de los rangos de fechas

si es verdadero 1 si no 0

Mide:

Fecha clave =

var D = selectedvalue(calender[Fecha]))

var FromDate = min(product[fromDate])

var ToDate = max(product[fromDate])

devolución

if( FromDate <= D & & ToDate >= D ,1,0)

Cuando usé esta Fecha en el panel de filtros con "Fecha de fecha = 1" solo puedo ver las filas coincidentes de la tabla, pero necesito todas las filas de la tabla de ventas.

Aproximación 2 usando los parámetros de Mquery y la opción de vinculación de parámetros

Creo un parámetro de fecha en Prower Query y tomé una tabla de productos en modo consulta directa.

Vinculé la columna de fecha de la tabla del calendario al parámetro de fecha e intenté filtrar las filas de la consulta directa

Pero al final me queda el tipo de fecha #datetime(año, mes, día, 0, 0, 0, 0) que no se puede convertir en tipo de fecha, intenté cambiar el tipo de fecha a fecha y hora en el parámetro y aún así me dio el mismo error.

¿Cómo puedo conseguirlo? Por favor, dadme sugerencias y tened en cuenta que la tabla de ventas tiene casi 2.000 millones de filas y está en modo importación..?

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hola @Rahgu001 ,

Queríamos amablemente hacer un seguimiento respecto a tu consulta. Si necesitas más ayuda, no dudes en ponerte en contacto.
Gracias.

Syndicate_Admin
Administrator
Administrator

Hola @Rahgu001 ,

Gracias por ponerte en contacto con la comunidad Microsoft Fabric.

Solo quería comprobar si tu consulta se ha resuelto y si alguna respuesta ha sido útil.
Si no, no dudes en pedir ayuda adicional.

Gracias.

Syndicate_Admin
Administrator
Administrator

Hola,

He resuelto una pregunta similar en el archivo de adjuntos.

Espero que esto ayude.

Syndicate_Admin
Administrator
Administrator

Te ofrezco una solución diferente, en DAX

Así que puedes elegir lo que prefieras. Esto debe considerarse si no puedes cambiar los datos con Power Query

Crea una columna en la Tabla de Productos

Clave primaria = Productos[ID del producto] & Productos[validfrom] & Productos[validto]

Y uno en la Tabla de Ventas

Productos clave extranjeros =
VAR SaleProductID = Ventas[Product_ID]
VAR Fecha de venta = Ventas[Fecha de Venta]
DEVOLUCIÓN
CALCULAR(
SELECTED VALUE ( Productos[Clave primaria] ),
FILTRO (
DISTINTO(Productos[ID del producto]),
Productos[ID del producto]= SaleProductID
),
FILTRO (
Productos,
Productos[validfrom] <= Fecha de venta
&& Productos[validto] >= Fecha de venta
),
REMOVERFILTERS( )
)

Conecta ambos y... ¡HECHO!

FBergamaschi_0-1765710076734.png

Aquí está el archivo

https://drive.google.com/drive/folders/130A4EkeSZAtpQ5dHOe1kJ3ZEUcnaESTX?usp=sharing

Si esto te ha ayudado, por favor considera dar kudos y marcar como solución

@me en las respuestas o perderé tu hilo

¿Quieres comprobar tus habilidades en DAX? Responde a mis retos quincenales de DAX en la página de Linkedin de Kubisco

Considera votar esta idea de Power BI

Francesco Bergamaschi

MBA, M.Eng, M.Econ, Profesor de BI

Syndicate_Admin
Administrator
Administrator

@Rahgu001

La dimensión de tu producto parece una dimensión que cambia lentamente, te sugeriría crear una clave sustituta en tu tabla de productos usando la columna de índice. Así

tharunkumarRTK_1-1765707556386.png

Usando Power Query, rellena un campo similar en la tabla de ventas

tharunkumarRTK_0-1765707640827.png

Código M para lógica de fusión (Lógica M está disponible en el archivo adjunto)

Después podrás crear una relación de uno a muchos entre producto y tabla de ventas, en clave sustituta

tharunkumarRTK_1-1765707729018.png

Entonces podrás rellenar tu tabla según tus necesidades. Puede que necesites activar "Mostrar elementos sin datos" para ver las filas que no coinciden con la tabla de productos

Screenshot 2025-12-14 at 3.55.03 PM.png

Por favor, encuentra el enlace para descargar el archivo

https://drive.google.com/file/d/1HOyzdAxbvmOo4SsQwZLNIQnvAxKy1UQn/view?usp=sharing

Espero que esto ayude

Conéctate en LinkedIn

Helpful resources

Announcements
FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.