La solicitud

De Andrew Hughes, Analista de Insights de Clientes
Tu objetivo
La página está filtrada a pedidos completados y la matriz tiene orders[channel] en las filas, junto a la medida dada Orders. Crea una medida llamada Customers que cuente los clientes distintos que hicieron esos pedidos.
- Llena
[Customers]en cada fila del visualpendiente - También la fila Total correctapendiente
Tu medida
- Visual
- A matrix: rows = orders[channel]; values = [Orders], [Customers]
- Segmentaciones
- orders[status] = completed
- Medidas del informe
Orders = COUNTROWS(orders)
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…
Solución de referencia
| channel | Orders | Customers |
|---|---|---|
| app | 3,885 | |
| marketplace | 1,597 | |
| web | 5,367 | |
| Total | 10,849 |
Mote revisa tu resultado
Presiona Comprobar. Mote completa tu respuesta y la compara con lo que necesita el informe.
Lo que recibe Andrew, y por qué
La lección
«¿Cuántos pedidos?» y «¿cuántos clientes?» suenan parecido y tienen respuestas distintas. La primera cuenta filas; la segunda cuenta las personas distintas detrás de esas filas.
En qué estás trabajando
Esto es un informe de práctica creado para este sitio; Power BI Desktop solo funciona en
Windows. La matriz tiene orders[channel] en las filas y un filtro de página que conserva solo
los pedidos completados. Tú escribes la medida, y el motor la evalúa en cada celda, Total
incluido.
En Power BI Desktop: selecciona la tabla orders en el panel Data, luego Home → New
measure (o Table tools → New measure). Escribe la fórmula, pulsa Enter y arrastra la medida
al campo Values de la matriz. El filtro de solo completados estaría en el panel Filters,
en Filters on this page.
Cuatro formas de contar
| Función | Cuenta | Ejemplo |
|---|---|---|
COUNTROWS(table) |
filas de una tabla | COUNTROWS(orders): pedidos |
COUNT(column) |
valores no vacíos de una columna | COUNT(orders[customer_id]): pedidos que tienen cliente |
COUNTA(column) |
valores no vacíos de cualquier tipo | también columnas de texto |
DISTINCTCOUNT(column) |
valores distintos de una columna | DISTINCTCOUNT(orders[customer_id]): clientes |
COUNTROWS es la forma habitual de contar filas; dice lo que quieres decir y no depende de que
ninguna columna esté rellena. DISTINCTCOUNT es la de «cuántos distintos…»: clientes, productos,
días con ventas.
Customers = DISTINCTCOUNT(orders[customer_id])
Por qué el Total es menor que las filas
Suma las tres filas de canal y obtienes más que el Total. No es un error. Un cliente que compró en la web y en la app es uno de los clientes de la web y uno de los clientes de la app, pero solo un cliente en el Total, que se evalúa una vez sobre todos los pedidos completados. Las sumas cuadran entre filas; los conteos distintos no.
Contar clientes, no pedidos
¿Por qué no contar la tabla customers? COUNTROWS(customers) contaría a todos los clientes,
compradores o no, porque los filtros sobre orders no fluyen de vuelta a customers (la relación
es de dirección única, de customers a orders). Los ID de cliente en orders son exactamente las
personas que hicieron los pedidos filtrados, así que esa es la columna que hay que contar.
Errores comunes
- COUNT en lugar de DISTINCTCOUNT. Cuenta uno por pedido: otra vez la columna Orders.
- COUNTROWS(customers). El mismo número en cada canal: todos los clientes.
- Sumar las filas para comprobar el Total. Para conteos distintos el Total es correcto tal como está.
¡Linterna encendida!
Practicaste: measuredistinctcountcountrowscountfilter context
- Resuelto
- Sin pistas
- Al primer intento
