Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

Contar valores únicos en una columna filtrada con anterior

Hola a todos,

No sé por qué, pero el foro decidió eliminar mi publicación, así que sólo estoy escribiendo de nuevo...

Estoy atascado con este problema desde hace un tiempo, he googleado y leído al menos 50 mensajes, pero no han encontrado ayuda hasta ahora. Espero que alguien tenga una idea aquí.

La pregunta que quiero responder es bastante simple. Cuántos envíos se necesitan para cumplir con un pedido.
El conjunto de datos con el que estoy trabajando contiene información sobre pedidos. Si usted pide un producto diferente al mismo tiempo, para cada uno de estos productos habrá un registro - una línea de pedido. Pero obtendrán la misma identificación de pedido. Ahora, debido a los niveles de stock y otras razones, no todas las líneas de pedido de un pedido se envían al mismo tiempo. Cada línea de pedido tiene un identificador de envío, que muestra en qué envío se envió el pedido.

Así que en una versión simplificada:

order_idshipping_id
1a
1b
1c
2a
2b
3

e

3e
3e
3e

El resultado debe ser así:

id de pedidoid de envíoids de envío por id de pedido
1a3
1b3
1c3
2a2
2b2
3e1
3e1
3e1

En primer lugar, intenté generar una tabla para cada fila que solo muestra los datos con el mismo identificador de orden exacto. Para comprobar, si mi fórmula es correcta, conté las filas y la controlé manualmente. Eso funcionó:

=COUNTX(FILTER('Outbound_3_ESC',EARLIER('Outbound_3_ESC'[order_id]) á 'Outbound_3_ESC'[order_id]),'Outbound_3_ESC'[order_id])

A continuación, intenté contar los valores distintos para el identificador de envío en esas tablas:

Envíos por order_id - CALCULATE(DISTINCTCOUNT(Outbound_3_ESC[shipment_id]),FILTER('Outbound_3_ESC',EARLIER(Outbound_3_ESC[order_id]) á 'Outbound_3_ESC'[order_id]))

La fórmula funciona, sin embargo, los resultados son incorrectos. No sé lo que se cuenta allí.... Leí en varios mensajes, que esto podría suceder, porque lo estoy haciendo en una columna calculada. Y la solución en el foro siempre fue usar una medida. Sin embargo, en una medida la función anterior no está funcionando... Y ahí estoy atascado.

Los comentarios, comentarios y soluciones son muy apreciados. También estoy encantado de responder a cualquier pregunta, que podría aparecer con respecto a mi descripción del problema.

Gracias de antemano por cualquier ayuda!
Jakob
1 ACCEPTED SOLUTION

Hola @staryuz ,

Por favor, intente crear una columna calculada como se muestra a continuación para reemplazar esa medida y comprobar si eso es lo que desea:

Column = CALCULATE (
    DISTINCTCOUNT ( 'Outbound_3_ESC'[shipment_id] ),
    FILTER (
      ALLSELECTED(    'Outbound_3_ESC' ),
        'Outbound_3_ESC'[order_id] = EARLIER( 'Outbound_3_ESC'[order_id] )
    )
)

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

12 REPLIES 12
amitchandak
Super User
Super User

@staryuz , Intentar como nueva columna

calculate(distinctcount(Table[shipment id]), filter(Table, [order id] á earlier([order id])))

Anonymous
Not applicable

Hola

Hola @staryuz ,

Por favor, intente crear medidas como se muestra a continuación para reemplazar la columna calculada original:

Measure =
CALCULATE (
    DISTINCTCOUNT ( 'Outbound_3_ESC'[shipment_id] ),
    FILTER (
        ALLSELECTED ( 'Outbound_3_ESC' ),
        'Outbound_3_ESC'[order_id] = MAX ( 'Outbound_3_ESC'[order_id] )
    )
)
Measure 2 = SUMX(VALUES('Outbound_3_ESC'[order_id]),[Measure])

Count unique values in a filtered column with earlier.JPG

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Hola Rena,

gracias por su ayuda. ¡Eso funcionó!

Quiero mostrar el promedio de la relación. ¿Cómo podría poner eso en una imagen?
¿Entiendo bien su fórmula - ¿Puedo simplemente cambiar el SUMX a AVERAGEX para obtener los promedios en el objeto visual?

AVERAGEX(VALUES('Outbound_3_ESC'[order_id]),[Measure])

Hola @staryuz ,

Si la siguiente tabla es lo que desea? Si no, proporcione más detalles y ejemplos sobre su resultado esperado.

desired result.JPG

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Hola Rena,

La idea es mostrar el número medio de envíos por identificador de pedido en un gráfico de columnas. Algo como esto:

Capture.PNG

Si introduzlo la medida como valor para el gráfico de columnas, muestra la suma de todas las medidas separadas en años. Así que obtengo el número total y no el promedio en la visualización.

Gracias y saludos
Jakob

Hola @staryuz ,

Lamento no tener claro su requisito. ¿Podría proporcionar el número promedio correcto de envíos por ID de pedido en forma de tabla como la de su publicación original? Como se ha comprobado el gráfico de columnas, el campo de fecha se mostrará como campos de eje. Entonces, ¿de dónde es este campo de fecha? ¿Es de la misma tabla con el campo de identificación de pedido?

El resultado debe ser así:

id de pedido id de envío ids de envío por id de pedido
1a3
1b3
1c3
2a2
2b2
3e1
3e1
3e1


Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Hola @yingyinr ,

El gráfico de columnas solo se usó para dar una idea de cómo debería ser la visualización al final.
El cálculo de la medida funciona perfectamente. Sin embargo, tengo problemas para incorporarlo a una visualización.
Para una columna calculada y simplemente puedo elegir mostrar como promedio. Sin embargo, esto no es posible para una medida.

Básicamente, en la visualización, los identificadores de envío por identificador de pedido deben mostrarse como un promedio general en un gráfico de columnas. Para los números aquí el promedio es 2. A continuación, debe representarse mediante una columna con el valor 2.
Capture.PNG

El conjunto de datos original contiene más información sobre el año y las categorías. Estoy planeando utilizar el año como eje para comparar cómo se desarrolló con el tiempo.

Gracias de nuevo por su ayuda.
Saludos

staryuz

Hola @staryuz ,

Por favor, intente crear una columna calculada como se muestra a continuación para reemplazar esa medida y comprobar si eso es lo que desea:

Column = CALCULATE (
    DISTINCTCOUNT ( 'Outbound_3_ESC'[shipment_id] ),
    FILTER (
      ALLSELECTED(    'Outbound_3_ESC' ),
        'Outbound_3_ESC'[order_id] = EARLIER( 'Outbound_3_ESC'[order_id] )
    )
)

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Hey @yingyinr ,

esto es exactamente lo que quería. ¡Gran! Muchas gracias.

No entiendo exactamente por qué los otros cálculos llegaron a resultados falsos. Sin embargo, con esta fórmula todo es correcto y puedo usarlo según lo planeado en los gráficos.

Gracias por su ayuda y paciencia!

Saludos

staryuz

camargos88
Community Champion
Community Champion

Hola @staryuz ,

¿Has probado esto:

Id. de envío por identificador de pedido: CALCULATE(DISTINCTCOUNT('Table'[shipping_id]), ALLEXCEPT('Table','Table'[order_id ]))



Did I answer your question? Mark my post as a solution!

Proud to be a Super User!



Anonymous
Not applicable

Hola camargos88,

gracias por la respuesta rápida.
El resultado es el mismo que con mi enfoque - la columna calculada muestra números incorrectos.
Por ejemplo, hay un pedido con 130 líneas de pedido, pero solo se utilizan 4 identificadores de envío en estas líneas de pedido. Sin embargo, la tuya y mi fórmula muestran 59.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors