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.
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?
ReferenceID | Descripción del producto | ProductType | Lo que estamos ejecutando (columna que estoy tratando de hacer) |
12323 | Q 04 | S | 5050667 |
12323 | Q 01 | S | 5050667 |
12323 | QD 30 | S | 5050667 |
12323 | Q 01 | S | 5050667 |
12323 | 5050667 | G | 5050667 |
12430 | QD 30 | S | 5050667 |
12430 | 5050667 | G | 5050667 |
12515 | 5081245 | G | 5081245 |
12515 | QD 31 | S | 5081245 |
12515 | QD 36 | S | 5081245 |
12573 | QD 46 | S | 5081245 |
12573 | 5081245 | G | 5081245 |
12581 | 5081245 | G | 5081245 |
12581 | QD 32 | S | 5081245 |
12695 | QD 30 | S | 5081245 |
12695 | 5081245 | G | 5081245 |
12836 | 5081245 | G | 5081245 |
12836 | QD 30 | S | 5081245 |
12836 | Q 12 | S | 5081245 |
12836 | Q 09 | S | 5081245 |
Solved! Go to Solution.
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.
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.
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!
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.
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.
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.
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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |