1. Faro

Nivel 3 · Varios filtros a la vez, e IN

La solicitud

De Kevin Park, Responsable de Cuentas B2B

“Los clientes de empresa compran en nuestra web y en la app, y los pedidos del marketplace pasan por un revendedor que yo no gestiono. Necesito mi propio número por categoría: ventas completadas a clientes de empresa, solo web y app. El marketplace queda fuera.”

Tu objetivo

La matriz tiene products[category] en las filas y la medida dada Sales (ventas completadas). Crea una medida llamada Digital Business Sales: Sales de los pedidos cuyo canal es web o app (usa IN { }) y cuyo segmento de cliente es business.

  • Llena [Digital Business Sales] en cada fila del visualpendiente
  • También la fila Total correctapendiente

Tu medida

DAX
Visual
A matrix: rows = products[category]; values = [Sales], [Digital Business Sales]
Medidas del informe
Sales = CALCULATE(SUM(order_items[line_total]), orders[status] = "completed")
Panel de datos: tablas y columnas
  • order_items order_item_id, order_id, product_id, quantity, unit_price, discount_pct, line_total
  • orders order_id, customer_id, order_date, status, channel, shipping_fee, coupon_code
  • products product_id, name, category, subcategory, unit_price, unit_cost, launched_on, is_active
  • customers customer_id, first_name, last_name, email, city, state, signup_date, segment, referral_source
  • returns return_id, order_item_id, returned_on, reason, refund_amount
  • Date Date, Year, Quarter, Month Number, Month, Year Month, Year Quarter, Day, Weekday Number, Weekday

Cargando el editor…

    Visual[Digital Business Sales] fills in when you press Check
    El visual antes de tu respuesta
    categorySalesDigital Business Sales
    Decor$822,667
    Furniture$1,393,164
    Kitchen$799,150
    Lighting$1,001,844
    Outdoor$1,297,802
    Textiles$579,658
    Total$5,894,284

    Mote revisa tu resultado

    Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.

    La lección

    Los tickets reales rara vez necesitan un solo filtro. El número de Kevin tiene dos condiciones, sobre dos tablas: el canal del pedido y el segmento del cliente.

    En qué estás trabajando

    Este es un motor DAX de práctica creado para este sitio, no Power BI; rellena la matriz celda por celda con tu medida y comprueba cada celda. En Power BI Desktop: Home → New measure, escribe la fórmula (Shift+Enter empieza una línea nueva en la barra de fórmulas), pulsa Enter y añade la medida a la matriz.

    Varios argumentos de filtro significan AND

    Digital Business Sales =
    CALCULATE(
        [Sales],
        orders[channel] IN { "web", "app" },
        customers[segment] = "business"
    )

    CALCULATE aplica todos los argumentos de filtro a la vez. Una fila de order_items cuenta solo si su pedido es web o app y su cliente es de empresa. Los filtros sobre columnas distintas nunca se cancelan entre sí; se intersectan.

    IN { } para una lista de valores

    orders[channel] IN { "web", "app" } conserva las filas cuyo canal es cualquiera de los valores de la lista. Las llaves construyen una pequeña tabla de una columna. Es lo mismo que escribir orders[channel] = "web" || orders[channel] = "app", y se lee mejor a medida que crece la lista. Para excluir en su lugar, envuélvelo: NOT ( orders[channel] IN { "marketplace" } ).

    OR dentro de una columna, AND entre columnas

    Un único argumento de filtro booleano puede probar columnas de una sola tabla, y ninguna medida. Dentro puedes usar ||, && e IN libremente. Para combinar dos tablas con OR (pedidos web o clientes de empresa) necesitas un filtro de tabla, que llega en el siguiente nivel con FILTER. Combinar condiciones con AND es fácil: da a cada una su propio argumento, como aquí.

    Los filtros viajan por las relaciones

    customers[segment] vive en customers, no en orders. No importa: el filtro cae en customers, la relación lo lleva a orders, y la siguiente a order_items, donde se ejecuta la suma. La medida Sales añade dentro su propio filtro de estado, así que el resultado son solo ventas completadas. Los CALCULATE anidados simplemente suman sus filtros.

    Errores comunes

    • && sobre la misma columna. orders[channel] = "web" && orders[channel] = "app" pide pedidos que sean ambas cosas a la vez: ninguno.
    • Mayúsculas y ortografía. Las coincidencias de texto ignoran las mayúsculas en DAX, así que "Web" funciona, pero "website" no coincide con nada.
    • Filtrar el visual en su lugar. Una segmentación de canal también cambiaría la columna Sales. Kevin quiere ambos números lado a lado, así que el filtro pertenece dentro de la medida.

    Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.