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.
Hola a todos,
Tengo un (creo) problema complejo con el filtrado de una tabla / matriz que no contiene datos de hechos. Mi modelo es un esquema en estrella con tabla de hechos 'factura' y tablas dimensionales 'producto','cliente', 'inquilino' & 'fecha'. Mi requisito es establecer una segmentación de datos que filtre todas las tablas, matrices o elementos visuales en mi panel de PBI para un inquilino determinado. Mi problema es que mis dimensiones de producto y cliente también contienen ciertas métricas y tengo tablas / matrices en su lugar, que solo contienen datos dimensionales de una de ellas, por ejemplo, una tabla que solo contiene "ProductNumber", "ProductName" y "PurchasePrice" de la dimensión 'DimProduct'. Como no hay ninguna referencia a los hechos, no puedo filtrar estas tablas o matrices con la columna [TenantID] en la dimensión de inquilino.
He establecido una relación bidireccional inactiva entre producto-inquilino y cliente-inquilino, que no puedo activar ya que esto destruiría el esquema en estrella. Una segmentación de datos basada en una columna con la siguiente lógica filtra mi product-data-only-table como se desea, pero esto no incluye los datos del cliente: ProductDataFilter = LOOKUPVALUE(Tenant[Name],Tenant[TenantID],'Product'[TenantID]) .
Las soluciones con varias segmentaciones de datos o incluir hechos en la tabla y luego ocultarlos no son lo que estoy buscando, espero que ustedes puedan encontrar una solución suave para establecer una sola segmentación de datos que filtre todas mis tablas / matrices / elementos visuales para un determinado inquilino, independientemente de si hay una columna de hechos utilizada o no?
Espero que mis explicaciones sean suficientes.
Muchas gracias y saludos cordiales,
Kathrin
Solved! Go to Solution.
No @KBarlage ,
Puede probar la siguiente fórmula:
Estos son los pasos que puede seguir:
1. Crear medida.
Measure =
var _selected=SELECTCOLUMNS(ALLSELECTED(Tenant),"1",[tenant])
return
IF(MAX('Customer'[Tenant]) in _selected||MAX('Product'[tenant]) in _selected,1,0)
2. Resultado:
Saludos
Liu Yang
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola, tengo un problema similar. Quiero filtrar una tabla tenue con la otra. Ex. Si se selecciona un país en una segmentación de datos, los clientes que pertenecen a ese país solo deben rellenarse en segmentaciones de datos de clientes.
El origen de datos son datos del cubo SSAS, por lo que no puedo modificar la relación. Por favor, sugiera alguna solución.
TIA
No @KBarlage ,
Puede probar la siguiente fórmula:
Estos son los pasos que puede seguir:
1. Crear medida.
Measure =
var _selected=SELECTCOLUMNS(ALLSELECTED(Tenant),"1",[tenant])
return
IF(MAX('Customer'[Tenant]) in _selected||MAX('Product'[tenant]) in _selected,1,0)
2. Resultado:
Saludos
Liu Yang
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Esto funciona como un encanto, gracias!
No @KBarlage ,
Estos son los pasos que puede seguir:
1. Crea meausre.
all flag =
var _selected=ALLSELECTED(Tenant[tenant])
var _product=SELECTCOLUMNS(FILTER('Product',[tenant] in _selected),"1",[product])
var _customer=SELECTCOLUMNS(FILTER('Customer',[tenant] in _selected),"1",[Customer])
return
IF(MAX('Product'[product]) in _product || MAX('Customer'[Customer]) in _customer,1,0)
2. Resultado.
Saludos
Liu Yang
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola Liu Yang,
gracias de nuevo!
Sin embargo, todavía tengo dos problemas más, para que sea lo más completo posible. Siento molestar de nuevo.
1) Se vuelve slighlty más complejo, ya que mi valor de segmentación de datos es una columna de nombre que no se hace referencia en las otras tablas. Por lo tanto, necesito filtrar para esta columna de nombre, pero la marca todavía debe contener la referencia a la columna de identificador. El problema debe verse en el archivo recién adjunto a continuación.
He intentado trabajar con Lookupvalue() como el siguiente, pero esto no funcionará:
2) El nuevo indicador "all" solo filtra los datos del cliente mediante el uso del esquema en estrella. Como la marca es una medida dentro de la dimensión de producto, al usar esto en la tabla de solo cliente, filtraría la tabla de solo cliente (= "Tabla de clientes" en nuestro modelo) solo por hechos relacionados con los clientes (al menos hasta donde entiendo el esquema de estrella). Sin embargo, podría haber clientes que no tengan ningún hecho (= facturas) relacionados con ellos dentro de un período de tiempo determinado. Todavía me gustaría mostrar estos clientes en la tabla de solo cliente.
¿Crees que hay alguna manera de establecer esta medida en mi tabla de métricas, de modo que everyhting se filtre correctamente? Pensando en ello, esto podría simplemente no ser posible, ya que siempre tendré que usar el esquema de estrella. Por lo tanto, volvería al sistema de dos banderas en cada una de las tablas de clientes y la tabla de productos. Pero tal vez usted tiene otra buena idea para hacer mi modelo menos complejo? 🙂
Gracias de nuevo!
Kathrin
No @KBarlage ,
Puede usar Flag como marcador para filtrar datos de dimensión en función de otros valores de dimensión.
He creado algunos datos:
Tabla de facturas:
Tabla de clientes:
Tabla de productos:
Estos son los pasos que puede seguir:
1. Crea meausre.
Flag =
var _selected=ALLSELECTED(Customer[Customer])
var _product=SELECTCOLUMNS(FILTER(ALL(invoice),[customer] in _selected),"1",[product])
return
IF(MAX('Product'[product]) in _product,1,0)
2. Coloque [Flag] en Filtro y establezca is=1, aplique el filtro.
3. Resultado:
Saludos
Liu Yang
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola Liu Yang,
muchas gracias por su respuesta! Su solución funciona muy bien y puedo usar esto como solución alternativa, mi problema todavía es un poco más complejo.
Tengo una tercera dimensión, Inquilino, que necesita filtrar las otras dos dimensiones (incluso cuando no se usan hechos en un objeto visual). Hay una referencia de inquilino en ambas tablas de dimensiones.
Puedo usar fácilmente su solución creando una marca en cada una de las dimensiones (cliente y producto). Sin embargo, como quiero habilitar el autoservicio con el conjunto de datos, preferiría una solución aún más simple.
¿Hay alguna manera de filtrar las tres tablas que se muestran en mi PBIX (tabla de hechos, tabla de clientes y tabla de productos) con una sola medida / columna en una sola segmentación de datos?
Gracias de antemano!
Kathrin
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 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |