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
Anonymous
Not applicable

Anidados IF, DIVIDE y LOOKUPVALUE en una medida

Hola a todos

Estoy tratando de poner la siguiente fórmula de columna calculada en una medida a continuación. Básicamente dice que si la orden es GBP, a continuación, mantenerlo como es de otra manera, dividir el valor de la OrderItemCostIncTax con el valor que proviene de la BÚSQUEDA contra la tabla de tipos de cambio.

Total de Ventas Brutas á IF('Detalles del pedido'[Moneda]-"GBP",'Detalles del pedido'[OrderItemCostIncTax],
DIVIDE('Detalles del pedido'[OrderItemCostIncTax],
LOOKUPVALUE('Tipos de cambio'[Unidades por GBP],'Tipos de cambio'[Fecha], 'Detalles del pedido'[ReceievedDate], 'Tipos de cambio'[Código de divisa], 'Detalles del pedido'[Moneda])))
¿Alguien puede ayudarme a poner esto en una medida?
1 ACCEPTED SOLUTION
Anonymous
Not applicable

No @v-janeyg-msft

Gracias por ponerte en contacto.

No puedo compartir el conjunto de datos, ya que hay datos confidenciales relacionados con nuestros clientes allí. Necesito la medida para hacer lo siguiente, he salido de esto para que sea más fácil de seguir:

1. usando una instrucción IF, si 'Order Details'[Currency] 'GBP' entonces tome que el valor en la columna 'OrderItemCostExTax]
2. de lo contrario, divida 'Detalles del pedido' [OrderItemCostExTax] con el valor del paso 3
3. aplique una búsqueda para obtener los 'Tipos de cambio' [Unidades por GBP], con una coincidencia en las fechas y la moneda dentro de las tablas 'Tipos de cambio'[Fecha], 'Detalles del pedido' [ReceievedDate],'Tipos de cambio'[Código de divisa], 'Detalles del pedido' [Moneda].

Esta medida Total Net Sales á serán las bases para algunas de las medidas existentes que tengo que están utilizando la tabla calculada en su lugar:


Total de Pedidos Cancelados (en inglés)
var _Cancelled-CALCULATE(Sum('Order Cancellations'[Total Net Sales?]),FILTER('Order Cancellations','Order Cancellations'[Inc. or Exc. Sales]-"Yes"))
devolución
IF(ISBLANK(_Cancelled),0,_Cancelled)

View solution in original post

9 REPLIES 9
v-janeyg-msft
Community Support
Community Support

Hola, @GJ217

Es un placer responder por ti.

Según su descripción, creo que puede estar un poco confundido acerca de la medida y la columna. La columna calculada existe en la tabla, no se requiere ningún contexto y es un valor fijo después de la carga, pero el valor de la medida cambiará según contextos diferentes, por lo que debe escribirse de acuerdo con los requisitos.

¿Podría compartir los datos de muestra y el resultado deseado o proporcionar más información sobre lo que desea hacer con esta medida? Así que podemos ayudarte pronto.

Si no resuelve su problema, por favor no dude en preguntarme.

Saludos

Janey Guo

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

No @v-janeyg-msft

Gracias por ponerte en contacto.

No puedo compartir el conjunto de datos, ya que hay datos confidenciales relacionados con nuestros clientes allí. Necesito la medida para hacer lo siguiente, he salido de esto para que sea más fácil de seguir:

1. usando una instrucción IF, si 'Order Details'[Currency] 'GBP' entonces tome que el valor en la columna 'OrderItemCostExTax]
2. de lo contrario, divida 'Detalles del pedido' [OrderItemCostExTax] con el valor del paso 3
3. aplique una búsqueda para obtener los 'Tipos de cambio' [Unidades por GBP], con una coincidencia en las fechas y la moneda dentro de las tablas 'Tipos de cambio'[Fecha], 'Detalles del pedido' [ReceievedDate],'Tipos de cambio'[Código de divisa], 'Detalles del pedido' [Moneda].

Esta medida Total Net Sales á serán las bases para algunas de las medidas existentes que tengo que están utilizando la tabla calculada en su lugar:


Total de Pedidos Cancelados (en inglés)
var _Cancelled-CALCULATE(Sum('Order Cancellations'[Total Net Sales?]),FILTER('Order Cancellations','Order Cancellations'[Inc. or Exc. Sales]-"Yes"))
devolución
IF(ISBLANK(_Cancelled),0,_Cancelled)

Hola, @GJ217

Me alegra que puedas resolver el problema por ti mismo, eres amable. Puedes marcar tu respuesta como la soul.

Si tiene otras preguntas, no dude en preguntarme.

Saludos

Janey Guo

Si este post Ayuda, entonces por favor considere Acédárlo como solución para ayudar a los otros miembros a encontrarlo más rápidamente.

P_D_G
Resolver III
Resolver III

No @GJ217,

es necesario añadir alguna referencia de agregación (min, max, avg, sum, etc.) a la columna de lo contrario no puede hacer referencia a los valores de una Medida.

probar algo como esto:

si(
min('Detalles del pedido'[Moneda]) - "GBP",
min('Detalles del pedido'[OrderItemCostIncTax'),
etc.)

amitchandak
Super User
Super User

@GJ217, ¿cuál es el error que está recibiendo.

Consulte cómo puede copiar valores de una tabla a otra -https://www.youtube.com/watch?v=czNHt7UXIe8 (valor de búsqueda, relacionado y otro)

Anonymous
Not applicable

No @amitchandak

Cuando copié y pegé la fórmula en una medida se me ocurrió el siguiente error:

"No se puede determinar un único valor para la columna 'OrderItemCostIncTax' en la tabla 'Order Details'. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un único resultado."

El problema con esto es esto, las conversiones de moneda se realizan a diario, por lo tanto, en mi tabla Excghange Rates tengo las tasas para cada fecha del mes y creo que la aplicación de un agregado como Min o Max no traerá de vuelta la conversión de moneda exacta para ese pedido en la fecha especificada. Por lo tanto, la razón por la que creé una columna calculada como una estructura, pero ahora está causando problemas conmigo tratando de cambiar el enlace de la tabla Detalles de fecha y pedido a Ambos en la sección Filtro cruzado (este enlace a otro post SAMEPERIODLASTYEAR en el que me ha ayudado) donde estoy recibiendo el siguiente error:

" Se detectó una dependencia circular: Detalles del pedido[Total de ventas brutas], Detalles del pedido [Margen bruto de beneficio], Detalles del pedido[Ventas brutas totales?]."

Después de haber investigado esto, es porque necesito cambiar las columnas calculadas enumeradas en el mensaje de error anterior a Medidas. Detalles del pedido[Total Gross Sales' y Order Details[Total Net Sales' son las únicas dos columnas calculadas que necesito convertir en Medidas dentro de la tabla Detalles del pedido, ya que se han convertido las otras dos columnas.

Cualquier ayuda y orientación aquí es muy bienvenido!

@GJ217 , creo que la fórmula debería funcionar como una nueva columna en Detalles del pedido.

Para que funcione como medida, necesita utilizar resumen o valores para forzar un contexto de nivel de fila

Como si


Total Gross Sales á sumx( summarize('Order Details','Order Details'[Currency], 'Order Details'[ReceievedDate], "_1", calculate( IF(max('Order Details'[Currency])"GBP",'sum(Order Details'[OrderItemCostIncTax]),
DIVIDE(sum('Order Details'[OrderItemCostIncTax]),
LOOKUPVALUE(Average('Exchange Rates'[Units per GBP]),max('Exchange Rates'[Date]), max('Order Details'[ReceievedDate]), max('Exchange Rates'[Currency Code]), max('Order Details'[Currency])))), [_1])

No @amitchandak

Sólo una pregunta rápida ¿qué hace el "_1" y el [_1] en la fórmula que tiene a continuación?

Anonymous
Not applicable

No @amitchandak

Gracias por esto, lo mecanograqué y recibí este mensaje de error:

"Se pasaron demasiados argumentos a la función AVERAGE. El número máximo de argumentos para la función es 1."


A continuación se muestra lo que mecanogravé:

Total Gross Sales ? ? SUMX( SUMMARIZE('Order Details','Order Details'[Currency], 'Order Details'[ReceievedDate], "_1", CALCULATE(IF(MAX('Order Details'[Currency])"GBP",SUM('Order Details'[OrderItemCostIncTax]),

DIVIDE(SUM('Order Details'[OrderItemCostIncTax]),
LOOKUPVALUE(AVERAGE('Tipos de Cambio'[Unidades por GBP],MAX('Tipos de Cambio'[Fecha]),MAX('Order Details'[ReceievedDate]), MAX('Tipos de Cambio'[Código de Moneda]),MAX('Detalles del Pedido'[Currency])))[_1])

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.