Forum Discussion
Ayuda con Dax
Hola, soy nuevo en power bi y trabajando en un informe de ventas. Estoy un poco atascado con el siguiente problema y esperaba conseguir ayuda.
Tengo una tabla de tiendas que enumera todas las tiendas de nuestro distrito. También tengo una tabla de ventas que tiene los pedidos y tiendas a los que vendimos. Se unen entre sí por un número de tienda (clave principal en la tabla stores). Estoy tratando de crear una visualización a partir de una medida que enumera las tiendas en las que NO estamos. Cualquier ayuda con el DAX u otras soluciones sería muy apreciada.
¡Gracias!
He aquí una breve explicación de cómo funciona
Tiendas sin Ventas ?
COUNTROWS ( FILTER ( Stores, ISBLANK ( CALCULATE ( COUNTROWS ( Sales ) ) ) ) ) ) )La función FILTER es un iterador, por lo que comienza con las filas de la tabla Stores en el contexto actual (es decir, filtrada por cualquier segmentación de datos o elementos en los objetos visuales), luego calcula las filas de la tabla Sales filtradas por la fila actual (el CALCULATE() desencadena "transición de contexto" para pasar la fila actual como filtro en la tabla Sales a través de esa relación). FILTER devuelve todas las filas que evaluan como True(), por lo que solo las tiendas que no tienen Sales satisfacen esa condición. A continuación, solo tenemos en cuenta las filas que pasan el filtro.
Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.
saludos
palmadita
5 Replies
- mahoneypat
Microsoft Employee
Una forma es hacer que la tabla sea visual con la columna Stores[Store] (o como la hayas llamado) y una medida como esta:
Tiendas sin Ventas ?
COUNTROWS ( FILTER ( Stores, ISBLANK ( CALCULATE ( COUNTROWS ( Sales ) ) ) ) ) ) )Esto devolverá en blanco para todas las tiendas que tenían ventas, y le dará el recuento de tiendas sin ventas (en su tabla, cada tienda tendrá un recuento de 1 y los espacios en blanco se eliminarán automáticamente).
Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.
saludos
palmadita
- amitchandak
Super User
@sunnyS , Es necesario crear ventas con +0 y filtrar las ventas 0 cuando trazar las ventas por tienda
Ventas: suma(Tabla[ventas netas])+0.
Puede utilizar esta opción y filtrar por null
Usted puede conseguir usando excepto
except(all(store[store]),all(sales[store]))
remitir este archivo cómo utilizar esto en la cláusula de medida
https://www.dropbox.com/s/3wr697b3m57zufo/ExceptOther%20Tabl.pbix?dl=0
- sunnySFrequent Visitor
Gracias @mahoneypat. Tu solución funcionó. Pregunta rápida: ¿La cruz de la fórmula hace referencia a la clave externa de ventas de la clave principal de las tiendas? Sólo estoy tratando de averiguar cómo funcionó. Gracias
- mahoneypat
Microsoft Employee
He aquí una breve explicación de cómo funciona
Tiendas sin Ventas ?
COUNTROWS ( FILTER ( Stores, ISBLANK ( CALCULATE ( COUNTROWS ( Sales ) ) ) ) ) ) )La función FILTER es un iterador, por lo que comienza con las filas de la tabla Stores en el contexto actual (es decir, filtrada por cualquier segmentación de datos o elementos en los objetos visuales), luego calcula las filas de la tabla Sales filtradas por la fila actual (el CALCULATE() desencadena "transición de contexto" para pasar la fila actual como filtro en la tabla Sales a través de esa relación). FILTER devuelve todas las filas que evaluan como True(), por lo que solo las tiendas que no tienen Sales satisfacen esa condición. A continuación, solo tenemos en cuenta las filas que pasan el filtro.
Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.
saludos
palmadita
- edhans
Community Champion
Si tiene una medida De ventas totales, algo así como:
Total Sales = SUM(SalesData[Sales])Puede crear un objeto visual y filtrarlo para mostrar solo dónde Total Sales está en blanco. Tendrás que asegurarte de que el nombre/número/clave de tu tienda esté configurado para mostrar elementos sin datos.
Así que básicamente, no se necesitaba DAX. Sólo tiene que filtrar y establecer las propiedades visuales