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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Mostrar elementos sin datos en un objeto visual de dos tablas con un filtro adicional (datos de ejemplo disponibles).

¡Hola!

Espero que puedas ayudarme a resolver este problema.

Tengo dos tablas: Contratos y Detalles del contrato.

Desafortunadamente, no todos los contratos tienen una línea en los detalles del contrato, pero también pueden tener varias líneas, por lo que la relación es 1 - 0..n.

Se establece de forma bidireccional en PowerBI.

Como lo necesitaba para otra visual, ya hay un campo existente en Contratos que muestra Verdadero/Falso si hay Detalles para este contrato o no (resuelto en SQL de antemano, no en PowerBI).

Data.PNG

La imagen que necesito es una lista de todos los contratos que tengo, además de los detalles más recientes (si están disponibles).

La parte difícil es la combinación de "últimos detalles" y "si están disponibles".

Puedo resolver cada uno de ellos por separado, pero una vez que combino ambos enfoques, la tabla permanece en blanco cuando no hay detalles del contrato, ya que el filtro en el campo "IsMaxPeriod" de ContractDetails no solo es nulo, sino que incluso no existe para, por ejemplo, ContractID 456.

Screenshot 2024-07-15 143259.png

En mi opinión, esta mesa debería ser súper fácil, ya que es solo un

SELECT * FROM Contracts LEFT JOIN (SELECT * FROM ContractDetails WHERE IsMaxPeriod =1) [...]

pero a nivel visual, ya que necesito los otros períodos para otras imágenes.

Desafortunadamente, soy mejor con SQL y otras herramientas de BI que con Power BI, así que espero que alguien aquí tenga algunos consejos de PowerBI sobre cómo resolverlo para esta imagen 🙂 específica

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Hola a todos

En primer lugar, @Surya9 gracias por su solución!

Y @CoTheiss según tengo entendido, quiero compartir otro método.

Si quieres ver toda la información, podemos volver a renovar la tabla en Power BI para hacer lo que necesites.

Esta columna calculada sirve para encontrar la última fecha de finalización de cada contrato.

LatestPeriodTo = 
VAR LatestPeriod =CALCULATE(
    MAX('ContractDetails'[PeriodTo]),
    FILTER('ContractDetails','ContractDetails'[ContractID]='Contracts'[ContractID])
)
RETURN
IF('Contracts'[HasContractDetails],
LatestPeriod,
BLANK()
)


Utilice CALCULATETABLE y FILTER para encontrar los detalles más recientes de cada contrato.
Utilice MAXX para extraer las últimas fechas PeriodFrom y PeriodTo.
Establezca IsMaxPeriod en TRUE si el contrato tiene detalles, de lo contrario, null (BLANK()).

LatestContractDetails = 
SELECTCOLUMNS(
   ADDCOLUMNS(
       Contracts,
       "PeriodFrom",
       VAR LatestDetails =
           CALCULATETABLE(
               FILTER(
                   ContractDetails,
                   ContractDetails[IsMaxPeriod] = TRUE &&
                   ContractDetails[ContractID] = RELATED(Contracts[ContractID])
               )
           )
       RETURN
       MAXX(LatestDetails, ContractDetails[PeriodFrom]),
       "PeriodTo",
       VAR LatestDetailsTo =
           CALCULATETABLE(
               FILTER(
                   ContractDetails,
                   ContractDetails[IsMaxPeriod] = TRUE &&
                   ContractDetails[ContractID] = RELATED(Contracts[ContractID])
               )
           )
       RETURN
       MAXX(LatestDetailsTo, ContractDetails[PeriodTo]),
       "IsMaxPeriod",
       IF(
           Contracts[HasContractDetails],
           TRUE,
           BLANK()
       )
   ),
   "ContractID", Contracts[ContractID],
   "ContractName", Contracts[ContractName],
   "Responsible", Contracts[Responsible],
   "PeriodFrom", [PeriodFrom],
   "PeriodTo", [PeriodTo],
   "IsMaxPeriod", [IsMaxPeriod]
)

vxingshenmsft_0-1722930080099.png

Si tiene alguna otra pregunta, consulte los archivos adjuntos que agregué que pueden ayudarlo.

¡Espero que te ayude!

Saludos
Apoyo de la comunidad Team_ Tom Shen

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

Hola @CoTheiss
haga una relación de contrato a detalle de contrato de 1 a * una sola dirección y cree 3 medidas como había creado en la captura de pantalla a continuación.

Surya9_0-1721049921318.png

Estoy obteniendo la salida del deseo.

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

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.

Top Kudoed Authors