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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

¿cómo puedo obtener el "número correcto de caja requerida"

Gracias a todos de antemano
Tengo los datos como se indica a continuación

Número de reserva Número de pedido204040H
AB12345111111 1
AB12345222222 1
AB12345333333 1
AB5678999999911
AB5678988888811

los Datos se basan en el nivel de número de pedido, es por eso que tenemos el mismo número de reserva en su lugar.

en el lado derecho, es el número de caja requerida.

Ejemplo: Booking# AB12345, el número de cuadro requerido es "1 x 40" en lugar de 3 x 40(1+1+1)

Booking# AB56789, el número de caja requerida es 1 x 20 + 1 x 40 en lugar de 2 x 20 + 2 x 40

Entonces, ¿cómo puedo mostrar el número correcto de caja requerido como medida?

por ejemplo, tanto el número de reserva de caja requerida será de 2 x 40 + 1 x 20

¡Gracias!

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Hey @Ericwhv ,

puede resolverlo con una medida de usted puede hacerlo de la manera perezosa con sólo tomar el valor MAX.

La medida para los 20 sería:

Amount 20 =
VAR vTable =
    ADDCOLUMNS(
        VALUES( myTable[Booking Number ] ),
        "@Max",
            CALCULATE(
                MAX( myTable[20] )
            )
    )
VAR vTotal =
    COUNTX(
        vTable,
        [@Max]
    )
RETURN
    IF(
        ISINSCOPE( myTable[Booking Number ] ),
        MAX( myTable[20] ),
        vTotal
    )

Y lo mismo para el 40, pero diferente columna:

Amount 40 =
VAR vTable =
    ADDCOLUMNS(
        VALUES( myTable[Booking Number ] ),
        "@Max",
            CALCULATE(
                MAX( myTable[40] )
            )
    )
VAR vTotal =
    COUNTX(
        vTable,
        [@Max]
    )
RETURN
    IF(
        ISINSCOPE( myTable[Booking Number ] ),
        MAX( myTable[40] ),
        vTotal
    )

El resultado será:

selimovd_0-1620423224185.png

También si agregara el número de pedido a la tabla, el total funciona:

selimovd_1-1620423333171.png

Si solo desea ver el número MAX también puede hacerlo con la función MAX:

1.gif
Tenga en cuenta con este método el Total muestra sólo 1.

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

View solution in original post

Hey @Ericwhv ,

claro, voy a romper la fórmula hacia abajo.

Con la primera variable vTable tomo todos los números de reserva distintos (VALUES( myTable[Booking Number ] )) en las filas y agrego una columna [@Max] con el valor MAX de la columna [40]. Así me des hago de todos los duplicados:

selimovd_0-1620982940443.png

Me doy cuenta de que esto también podría haberse resuelto con un RESUMEN. Esto sería un poco más elegante.

Con el siguiente paso COUNTX iterado a través de esta tabla y contar la cantidad de entradas. Así que para el número de reserva AB12345 habría un 1, para el total de un 2 ya que la tabla filtrada tiene 2 entradas.

En el último paso, verúo si el número de reserva está en el ámbito (por lo tanto, en la fila) o si es la fila Total y devueldo el MAX o el valor de la fila.

Así que mientras escribía esto, me di cuenta de que estaba haciendo la fórmula waaaaay demasiado complicada. Lo siento, supongo que estaba cansado el viernes 😅😉

Puede lograr lo mismo simplemente eliminando los duplicados para el número de reserva y el valor y luego hacer la suma. Así que ahora recomendaría la siguiente fórmula:

Para los 20:

Amount 20 V2 = 
VAR vTable = SUMMARIZE(myTable, myTable[Booking Number ], myTable[20])
RETURN
    SUMX(vTable, myTable[20])

Para el 40:

Amount 40 V2 = 
VAR vTable = SUMMARIZE(myTable, myTable[Booking Number ], myTable[40])
RETURN
    SUMX(vTable, myTable[40])

Lo siento.

Acerca de las preguntas que mencionó a continuación. Si ya tiene una medida, no necesita usar CALCULATE porque no va a cambiar el contexto del filtro.

Simplemente agregue o multiplique las medidas:

Total in T = [Amount 20]*1 + [Amount 40]*2 + [Amount 40H]*2

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

hola

Puede descargar mi archivo PBI desde aquí.

Espero que esto ayude.

Untitled.png

@selimovd

gracias por su ayuda!

cuando trato de añadir su medición allí, aquí está la advertencia msg

La función ISINSCOPE espera una expresión de referencia de columna para el argumento '1', pero se utilizó una expresión de referencia de tabla.

¿Puedes echarme un vistazo, por favor, gracias!

Hey @Ericwhv ,

ese mensaje de error significa que utilizó una tabla en lugar de una columna para la función INSCOPE.

En mi función, por ejemplo, me refiero a la columna:

ISINSCOPE( myTable[Booking Number ] )

Usted obtendría ese mensaje de error mencionado cuando usted sólo se refiere a la tabla de esa esa:

ISINSCOPE( myTable )

Por favor, compruebe cuando pegó mi fórmula, si realmente utilizó la referencia para la columna [Número de reserva].

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

última pregunta, si me gustaría basarme en esta medición para averiguar cuántos TEU por envío

¿Cómo puedo hacerlo?

Trato de usar

Total en T = CALCULATE([Importe 20]*1+[Importe 40]*2+[Importe 40H]*2)
que no es trabajo
1 x 20 = 1 TEU
1 x 40 = 2 TEU
¿Tienes idea de mí, muchas gracias!!!

Hey @Ericwhv ,

no necesita CALCULATE en este caso. Sólo necesita CALCULATE si modifica el contexto del filtro. Por ejemplo, si desea excluir o incluir un valor específico, cambie la fecha, quite filtros o establezca explícitamente un valor de filtro para una medida. No haces nada de eso, así que no necesitas usar CALCULATE.

Prueba lo mismo sin CALCULAR:

Total in T = [Amount 20] * 1 + [Amount 40] * 2 + [Amount 40H] * 2

Avísame si eso funciona.

Saludos

Denis

Gracias, eso es muy útil!!

si no te importa, ¿puedes explicarme la lógica?

Realmente no entiendo los últimos dos pasos, countX y isinscope esa parte, gracias!!

Hey @Ericwhv ,

claro, voy a romper la fórmula hacia abajo.

Con la primera variable vTable tomo todos los números de reserva distintos (VALUES( myTable[Booking Number ] )) en las filas y agrego una columna [@Max] con el valor MAX de la columna [40]. Así me des hago de todos los duplicados:

selimovd_0-1620982940443.png

Me doy cuenta de que esto también podría haberse resuelto con un RESUMEN. Esto sería un poco más elegante.

Con el siguiente paso COUNTX iterado a través de esta tabla y contar la cantidad de entradas. Así que para el número de reserva AB12345 habría un 1, para el total de un 2 ya que la tabla filtrada tiene 2 entradas.

En el último paso, verúo si el número de reserva está en el ámbito (por lo tanto, en la fila) o si es la fila Total y devueldo el MAX o el valor de la fila.

Así que mientras escribía esto, me di cuenta de que estaba haciendo la fórmula waaaaay demasiado complicada. Lo siento, supongo que estaba cansado el viernes 😅😉

Puede lograr lo mismo simplemente eliminando los duplicados para el número de reserva y el valor y luego hacer la suma. Así que ahora recomendaría la siguiente fórmula:

Para los 20:

Amount 20 V2 = 
VAR vTable = SUMMARIZE(myTable, myTable[Booking Number ], myTable[20])
RETURN
    SUMX(vTable, myTable[20])

Para el 40:

Amount 40 V2 = 
VAR vTable = SUMMARIZE(myTable, myTable[Booking Number ], myTable[40])
RETURN
    SUMX(vTable, myTable[40])

Lo siento.

Acerca de las preguntas que mencionó a continuación. Si ya tiene una medida, no necesita usar CALCULATE porque no va a cambiar el contexto del filtro.

Simplemente agregue o multiplique las medidas:

Total in T = [Amount 20]*1 + [Amount 40]*2 + [Amount 40H]*2

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis
Syndicate_Admin
Administrator
Administrator

Hey @Ericwhv ,

puede resolverlo con una medida de usted puede hacerlo de la manera perezosa con sólo tomar el valor MAX.

La medida para los 20 sería:

Amount 20 =
VAR vTable =
    ADDCOLUMNS(
        VALUES( myTable[Booking Number ] ),
        "@Max",
            CALCULATE(
                MAX( myTable[20] )
            )
    )
VAR vTotal =
    COUNTX(
        vTable,
        [@Max]
    )
RETURN
    IF(
        ISINSCOPE( myTable[Booking Number ] ),
        MAX( myTable[20] ),
        vTotal
    )

Y lo mismo para el 40, pero diferente columna:

Amount 40 =
VAR vTable =
    ADDCOLUMNS(
        VALUES( myTable[Booking Number ] ),
        "@Max",
            CALCULATE(
                MAX( myTable[40] )
            )
    )
VAR vTotal =
    COUNTX(
        vTable,
        [@Max]
    )
RETURN
    IF(
        ISINSCOPE( myTable[Booking Number ] ),
        MAX( myTable[40] ),
        vTotal
    )

El resultado será:

selimovd_0-1620423224185.png

También si agregara el número de pedido a la tabla, el total funciona:

selimovd_1-1620423333171.png

Si solo desea ver el número MAX también puede hacerlo con la función MAX:

1.gif
Tenga en cuenta con este método el Total muestra sólo 1.

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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