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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Alternativas a ADDCOLUMNS para DirectQuery

Hola, estoy en el proceso de dividir un informe de Power BI en dos. El Modelo Semántico 1 albergará los datos históricos de Contacto/Cuenta con las medidas asociadas y el Informe B albergará los datos de puntuación de las pruebas que deben hacer referencia al Modelo Semántico 2. Lo hacemos utilizando un modelo compuesto con una conexión en tiempo real con el modelo semántico 1.

hrafnkel11_0-1702995201443.png

Actualmente estoy determinando si un contacto pasó usando una medida que es una instrucción SWITCH grande que define las reglas de calificación separadas en función de cada perfil de contacto.

Certified = 
SWITCH(
    TRUE(),
    SELECTEDVALUE('Contact'[Role]) = "Sales",1,
    SELECTEDVALUE('Contact'[Role]) = "Academic",1,0
	)

Mi problema es que luego uso una medida SUMX ADDCOLUMNS para agregar lo anterior, que no parece estar permitido en DirectQuery.

# Certified = 
SUMX(  
        ADDCOLUMNS(
            'Contact',
             "Certified",[Certified] 
             ), 
        [Certified]
		)

¿Hay tal vez una mejor manera de abordar esto?

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Yo probaría esto primero:

# Certified = SUMX ( 'Contact', [Certified] )

¡Gracias! De hecho, intenté esto primero, pero obtuve un error. Resultó que el error se debía a que el modelo conectado en vivo tenía un error de columna no relacionado. Ahora, cuando hago esto, no obtengo un error, pero Power BI simplemente gira. Parece ser incapaz de producir el cálculo.

Iterar a través de una tabla y hacer una transición de contexto y un cambio para cada fila es una forma realmente ineficiente de hacer este cálculo.

Recomendaría algo más como esto:

# Certified =
CALCULATE (
    COUNTROWS ( Contact ),
    Contact[Role] IN { "Sales", "Academic" }
)

O como esto

# Certified =
COUNTROWS (
    FILTER (
        Contact,
        Contact[Role] IN { "Sales", "Academic" }
    )
)

Gracias Alexis. Estoy de acuerdo en que probablemente haya una manera mucho mejor, pero probablemente también simplifiqué demasiado la medida Certificado en mi ejemplo. El usuario final tiene un conjunto diferente de criterios para cada uno de estos roles. Es más parecido a esto (que todavía está simplificado):

Certified = 
SWITCH(
    TRUE(),
    SELECTEDVALUE('Contact'[Role]) = "Sales" && [Sales Test Passes]>0,1,
    SELECTEDVALUE('Contact'[Role]) = "Academic" && [Academic Test Passes]>0,1,0
	)

Donde cada validación de SWITCH utiliza un conjunto de reglas completamente separado para cada rol. Devuelvo un booleano y, a continuación, itero ese resultado sobre la tabla de contactos. El resultado deseado es que para cada registro de contacto, sé si están certificados o no. Tampoco puedo hacer una columna calculada, ya que requiere contexto de filtro.

En su ejemplo, eso me permitiría contar los registros de contacto en sí, pero no solo aquellos en los que el booleano Certificado = 1.

Syndicate_Admin
Administrator
Administrator

No estoy seguro, pero prueba esto

# Certified = 
SUMX(  
        SUMMARIZE(
            'Contact','Contact'[Role],
             "Certified",[Certified] 
             ), 
        [Certified]
		)

¡Gracias! Probé esto, así como un par de otros enfoques. Parece que Power BI simplemente gira. Parece ser incapaz de producir el cálculo. Supongo que tal vez no le gusta que SUMX se use contra la fuente de datos conectada en vivo.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors