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.
Gracias a todos de antemano
Tengo los datos como se indica a continuación
Número de reserva | Número de pedido | 20 | 40 | 40H |
AB12345 | 111111 | 1 | ||
AB12345 | 222222 | 1 | ||
AB12345 | 333333 | 1 | ||
AB56789 | 999999 | 1 | 1 | |
AB56789 | 888888 | 1 | 1 |
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!
Solved! Go to Solution.
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á:
También si agregara el número de pedido a la tabla, el total funciona:
Si solo desea ver el número MAX también puede hacerlo con la función MAX:
Tenga en cuenta con este método el Total muestra sólo 1.
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:
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
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].
ú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
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:
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
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á:
También si agregara el número de pedido a la tabla, el total funciona:
Si solo desea ver el número MAX también puede hacerlo con la función MAX:
Tenga en cuenta con este método el Total muestra sólo 1.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.