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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Obtención de la lista de datos de una columna de texto en función de los criterios de filtro de otra columna de texto

Estoy buscando ayuda en DAX.

Datos: https://www.icmagroup.org/membership/List-of-principal-delegates-2/

Todas las columnas son columnas de texto y son a saber: Empresa, Nombre, Apellido, Jurisdicción del Miembro.

Concatenó Nombre y Apellido como Nombre Completo y eliminó las columnas Nombre y Apellido usando la Interfaz power Query.

El conjunto de datos final contiene: Empresa, Jurisdicción de los miembros, Nombre completo. Todas son columnas de texto. Total 634 filas.

El siguiente DAX que había escrito de esta manera:

Recuento de bancos miembros por Jurisdicton =
CALCULAR(
CONTAR( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] )
)
rivthebest_0-1663698041302.png

Recuento de bancos miembros por jurisdicción y tipo =
CALCULAR(
CONTAR( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)
rivthebest_1-1663698116166.png

y finalmente el siguiente DAX:

Lista de bancos miembros por jurisdicción y tipo =
CALCULABLE(
VALORES( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)
Esta es la consulta que estoy teniendo problema. En lugar de contar los Bancos Miembros por Jurisdicción según la condición de filtro que había establecido, me gustaría obtener la lista de los Bancos Miembros por Jurisdicción y el conjunto de Condiciones de Filtro. La fórmula DAX anterior es sintácticamente correcta, pero no me está ayudando a producir ningún resultado, ya que no se puede usar en el segmento Valor en Matrix Visual. Aquí está el mensaje de error publicado a continuación.
rivthebest_2-1663698363748.png

Estoy bastante seguro de que estoy cometiendo un terrible error tonto imperdonable y es por eso que estoy buscando su valioso consejo. Por favor, ayúdame.

1 ACCEPTED SOLUTION

Hi Xiaoxin,

Gracias por su ayuda.. eres un salvador de vida. Un cambio menor que tuve que hacer en su segmento de código. En lugar de usar CALCULATETABLE, CALCULATE estará en su lugar y la pieza final de código es la siguiente:

Lista de bancos miembros por jurisdicción y tipo =
CALCULAR(
CONCATENATEX(VALORES( ICMA_Members[Empresa] ), ICMA_Members[Empresa], ",")
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Se me ocurrió la idea... debería ser CALCULATE en lugar de CALCULATETABLE.... Gracias...

Syndicate_Admin
Administrator
Administrator

Hi Xiaoxin,

Al seguir su paso, obtengo el siguiente error pegado como captura de pantalla:

rivthebest_0-1663731819103.png

Por favor, avise.

Saludos

Riv

Syndicate_Admin
Administrator
Administrator

Hola

¿Podría compartir algunos datos con los que trabajar y mostrar el resultado esperado?

Hola Ashish,

Datos: https://www.icmagroup.org/membership/List-of-principal-delegates-2/

Todas las columnas son columnas de texto y son a saber: Empresa, Nombre, Apellido, Jurisdicción del Miembro.

Concatenó Nombre y Apellido como Nombre Completo y eliminó las columnas Nombre y Apellido usando la Interfaz power Query.

El conjunto de datos final contiene: Empresa, Jurisdicción de los miembros, Nombre completo. Todas son columnas de texto. Total 634 filas.

El siguiente DAX que había escrito de esta manera:

Recuento de bancos miembros por Jurisdicton =
CALCULAR(
CONTAR( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] )
)
Recuento de bancos miembros por jurisdicción y tipo =
CALCULAR(
CONTAR( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)
y por último lo que Xiaoxin ha mencionado en su código y yo había aplicado el mismo con una pequeña alteración como en lugar de usar CALCULATETABLE había usado CALCULATE y funcionó.
Lista de bancos miembros por jurisdicción y tipo =
CALCULAR(
VALORES( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)
Ahish por favor hágamelo saber si hay algún otro detalle que necesito proporcionar
Saludos Riv

Hola Ashish,

Por favor, ignora mi último mensaje

Aquí está el actualizado:

Datos: https://www.icmagroup.org/membership/List-of-principal-delegates-2/

Todas las columnas son columnas de texto y son a saber: Empresa, Nombre, Apellido, Jurisdicción del Miembro.

Concatenó Nombre y Apellido como Nombre Completo y eliminó las columnas Nombre y Apellido usando la Interfaz power Query.

El conjunto de datos final contiene: Empresa, Jurisdicción de los miembros, Nombre completo. Todas son columnas de texto. Total 634 filas.

El siguiente DAX que había escrito de esta manera:

Recuento de bancos miembros por Jurisdicton =
CALCULAR(
CONTAR( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] )
)
Recuento de bancos miembros por jurisdicción y tipo =
CALCULAR(
CONTAR( ICMA_Members[Empresa] ),
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)
y por último lo que Xiaoxin ha mencionado en su código y yo había aplicado el mismo con una pequeña alteración como en lugar de usar CALCULATETABLE había usado CALCULATE y funcionó.
Lista de bancos miembros por jurisdicción y tipo =
CALCULAR(
CONCATENATEX(VALORES( ICMA_Members[Empresa] ), ICMA_Members[Empresa], ",")
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)
Ashish por favor hágamelo saber si hay algún otro detalle que necesito proporcionar
Saludos Riv

Hola

Dijiste que la fórmula de Xiaoxin funcionaba, así que supongo que tu pregunta está respondida. Si no es así, entonces (como se solicitó en mi mensaje anterior), comparta algunos datos y muestre el resultado esperado.

Syndicate_Admin
Administrator
Administrator

@rivthebest,

AFAIK, la función VALORES devolverá una lista si el contexto de fila actual tiene varias filas. (no se admite el uso del tipo de datos devuelto en medida)
Creo que es necesario realizar operaciones de concatenación con el resultado para controlar si el contexto de fila actual se ha agregado con varias filas:

List of Member Banks Per Jurisdiction and Type =
CALCULATETABLE (
    CONCATENATEX ( VALUES ( ICMA_Members[Company] ), [Company], "," ),
    GROUPBY ( ICMA_Members, ICMA_Members[Member Jurisdiction] ),
    FILTER ( ICMA_Members, RIGHT ( ICMA_Members[Company], 3 ) = "LLP" )
)

Saludos

Xiaoxin Sheng

Hi Xiaoxin,

Gracias por su ayuda.. eres un salvador de vida. Un cambio menor que tuve que hacer en su segmento de código. En lugar de usar CALCULATETABLE, CALCULATE estará en su lugar y la pieza final de código es la siguiente:

Lista de bancos miembros por jurisdicción y tipo =
CALCULAR(
CONCATENATEX(VALORES( ICMA_Members[Empresa] ), ICMA_Members[Empresa], ",")
GROUPBY( ICMA_Members, ICMA_Members[Jurisdicción de los miembros] ),
FILTRO( ICMA_Members, DERECHA( ICMA_Members[Empresa], 3) = "LLP" )
)

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors
Users online (2,690)