Robin Hood
tener problemas para que un dax funcione correctamente
Tengo una sola tabla con productos e identificaciones de pedido únicas (pueden contener varios productos) y fecha.
algo como esto
Producto | Solicitar ID | Fecha |
1 | 123 | 5/5/2021 |
2 | 123 | 5/5/2021 |
1 | 321 | 5/5/2021 |
2 | 321 | 5/5/2021 |
3 | 321 | 5/5/2021 |
2 | 213 | 10/05/2021 |
3 | 213 | 10/05/2021 |
lo que estoy tratando de hacer es contar el% del total donde aparecen los elementos 1 y 2, mientras filtre 3 de la imagen con un filtro y tenga un selector de fechas en el informe. Estoy probando el siguiente dax, ya que quiero contar el total de veces que los productos aparecen 7 frente al recuento de los productos individuales (producto de ejemplo 1) 2 para obtener un% de presencia de que el producto aparece en los pedidos.
La salida ideal se vería así
Producto | tiempos presentes | articulos totales | Ocurrencia |
1 |
2 | 7 | 28,5% |
2 | 3 | 7 | 42,8% |
3 está filtrado y no es visible |
jmalone
En respuesta a Robin Hood
Puede modificar la medida anterior para cambiar la agregación de distinto recuento de order_ids a filas si lo desea. También puede modificar la sección de filtro según sea necesario.
Por ejemplo, la siguiente medida le daría la ocurrencia del producto 1:
Occurrence of Product 1 =
DIVIDE (
CALCULATE (
COUNTROWS( 'TableName'),
'TableName'[Product] = "1"
),
CALCULATE (
COUNTROWS( 'TableName'),
ALL('TableName'[Product])
)
)
También puede escribir una medida para calcular la ocurrencia del producto de forma dinámica:
Occurrence of Selected Product =
DIVIDE (
COUNTROWS( 'TableName')
,
CALCULATE (
COUNTROWS( 'TableName'),
ALL('TableName'[Product])
)
)
Si usa el [Occurrence of Selected Product] medida en un visual, con el campo Producto en las filas / eje, la fórmula devolverá el% de ocurrencia para cada producto. Creo que esto es lo que estás pidiendo.
jmalone
Parece que desea el% de pedidos que tenían el Producto 1 y / o el Producto 2.
DIVIDE (
CALCULATE (
DISTINCTCOUNT( 'TableName'[Order_id] ),
'TableName'[Product] IN { "1", "2" )
),
DISTINCTCOUNT( 'TableName'[Order_id] )
)
Robin Hood
En respuesta a jmalone
Creo que estoy preguntando esto mal, necesito el número total de filas con el producto filtrado «3», que es 7
entonces necesito el número total de filas para cada «1» y «2», que serían 2 y 3
luego, simplemente dividiría la ocurrencia de «1» por el total para obtener el 28.5% del tiempo que el producto «1» se muestra en un pedido
jmalone
En respuesta a Robin Hood
Puede modificar la medida anterior para cambiar la agregación de distinto recuento de order_ids a filas si lo desea. También puede modificar la sección de filtro según sea necesario.
Por ejemplo, la siguiente medida le daría la ocurrencia del producto 1:
Occurrence of Product 1 =
DIVIDE (
CALCULATE (
COUNTROWS( 'TableName'),
'TableName'[Product] = "1"
),
CALCULATE (
COUNTROWS( 'TableName'),
ALL('TableName'[Product])
)
)
También puede escribir una medida para calcular la ocurrencia del producto de forma dinámica:
Occurrence of Selected Product =
DIVIDE (
COUNTROWS( 'TableName')
,
CALCULATE (
COUNTROWS( 'TableName'),
ALL('TableName'[Product])
)
)
Si usa el [Occurrence of Selected Product] medida en un visual, con el campo Producto en las filas / eje, la fórmula devolverá el% de ocurrencia para cada producto. Creo que esto es lo que estás pidiendo.
Robin Hood
En respuesta a jmalone
Gracias Jmalone, ¿qué pasaría si dijera 200 productos y quisiera filtrarlos manualmente a 4-5? ¿Podría usar un parámetro en ese caso en la declaración «in»?
jmalone
En respuesta a Robin Hood
Puede escribir cada uno de los productos que desea incluir dentro de la declaración IN, sí. Esto funcionaría si solo tuviera un puñado de productos.
Si tiene muchos productos que desea incluir, puede almacenarlos como una tabla separada en su modelo (use la función «Ingresar datos» en Power BI, o importe una tabla desde Excel, etc.) y use la siguiente sintaxis , donde Productos para incluir es el nombre de la columna:
'TableName'[Product] IN VALUES ( 'ManuallyCreatedTableName'[ProductsToInclude] )