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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Nueva columna de agrupación

Estoy buscando agregar una columna de agrupación que examine los valores de unas pocas columnas diferentes para determinar el valor que se debe introducir. Mis datos proceden de una tabla de producción que registra el buen producto y la chatarra que se crea en un turno, así como las distintas razones de la chatarra. Las entradas en el mismo turno se agrupan por el valor ReferenceID, el buen código de producto o código de rechazo que se muestra en productdescription y una característica de ordenación en el ProductType que ayuda a mostrar si se trata de un buen producto (G) o chatarra (S). Lo que quiero hacer es agregar una columna donde cada entrada en ese ReferenceID obtiene la Descripción del producto bueno (ProductType = G) para que pueda ordenar y ver qué razones de rechazo obtenemos al ejecutar ciertos productos. A continuación se muestra el ejemplo de los datos... ¿Alguien puede ayudarme en esto?

ReferenceIDDescripción del productoProductTypeLo que estamos ejecutando (columna que estoy tratando de hacer)
12323Q 04S5050667
12323Q 01S5050667
12323QD 30S5050667
12323Q 01S5050667
123235050667G5050667
12430QD 30S5050667
124305050667G5050667
125155081245G5081245
12515QD 31S5081245
12515QD 36S5081245
12573QD 46S5081245
125735081245G5081245
125815081245G5081245
12581QD 32S5081245
12695QD 30S5081245
126955081245G5081245
128365081245G5081245
12836QD 30S5081245
12836Q 12S5081245
12836Q 09S5081245

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

hola

Esta fórmula de columna calculada funciona

=CALCULATE(MAX(Data[ProductDescription]),FILTER(Data,Data[ReferenceID]=EARLIER(Data[ReferenceID])&&Data[ProductType]="G"))

Espero que esto ayude.

Untitled.png

View solution in original post

Hey @haefnja ,

DirectQuery es una gran diferencia.

El problema no es CALCULATE, la función CALCULATE funciona con DirectQuery. Los problemas suelen ser los límites de las tablas calculadas y las columnas calculadas.

En su caso agregue la columna en su origen de datos, desde mi punto de vista que es el mejor lugar para hacer eso para su caso.

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Así que actualizar para cerrar esto, terminé teniendo que hacer algunas tablas nuevas. primero fue una nueva tabla filtrada calculada que sólo trae la referenciaID y la descripción del producto para sólo el tipo de producto de "G". A continuación, tuve que crear otra tabla que traiga los datos de la tabla principal, pero importar en lugar de consulta directa. una vez que importa, puedo usar el valor de búsqueda para una nueva columna que busca el referenceID y devuelve el buen código de producto. probablemente una manera muy redonda de hacerlo, pero está funcionando, así que estoy feliz. Gracias a @selimovd y @Ashish_Mathur por tratar de ayudar!

Syndicate_Admin
Administrator
Administrator

Gracias por la ayuda @Ashish_Mathur y @selimovd. Parece que debería funcionar, pero me encontré con un problema que no esperaba. Estoy usando esto en el modo DirectQuery, ya que es un sistema en vivo que constantemente está recibiendo nuevos datos introducidos desde el piso de producción. Puesto que es DirectQuery, no puedo utilizar la función CALCULATE... alguna sugerencia?

Hey @haefnja ,

DirectQuery es una gran diferencia.

El problema no es CALCULATE, la función CALCULATE funciona con DirectQuery. Los problemas suelen ser los límites de las tablas calculadas y las columnas calculadas.

En su caso agregue la columna en su origen de datos, desde mi punto de vista que es el mejor lugar para hacer eso para su caso.

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

No tengo acceso directo a la base de datos que actúa como origen de datos, así que si no puedo entrar en mi origen de datos, ¿hay otra manera de hacerlo? ¿Hay una manera diferente de decir básicamente en una nueva columna "Para todos los mismos valores ReferenceID, tome el ProductDescription when ProductType = G"? Creo que entiendes lo suficientemente bien lo que estoy tratando de hacer, simplemente no entiendo por qué no puedo hacer que funcione correctamente.

Syndicate_Admin
Administrator
Administrator

hola

Esta fórmula de columna calculada funciona

=CALCULATE(MAX(Data[ProductDescription]),FILTER(Data,Data[ReferenceID]=EARLIER(Data[ReferenceID])&&Data[ProductType]="G"))

Espero que esto ayude.

Untitled.png

Syndicate_Admin
Administrator
Administrator

Hey @haefnja ,

la siguiente columna calculada debe darle el resultado deseado:

Description G =
VAR vRowReferenceID = myTable[ReferenceID]
VAR vDescr =
    CALCULATE(
        MAX( myTable[ProductDescription] ),
        myTable[ProductType] = "G",
        myTable[ReferenceID] = vRowReferenceID,
        myTable
    )
RETURN
    vDescr

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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