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
tom_cowling
Frequent Visitor

Problema al crear una consulta DAX

Hola

Realmente estoy luchando para obtener la sintaxis correcta en esta consulta de DAX que estoy escribiendo y no puedo encontrar una solución que se adapte a internet.

Tengo dos mesas. Dwh_Fact_Main y Nominal_Info.

Fact_Main tiene columnas denominadas Nominal y Value. Nominal_Info tiene Nominal y nomgroup (que contiene algunos valores diferentes que quiero filtrar).

Mi consulta en inglés simple sería:

Haga una SUMA de valor en todas las filas de fact_main con el nomgroup de "Ingresos", menos la SUMA de Valor en todas las filas con el nomgroup de "Gasto", menos la SUMA de Valor en todas las filas con el grupo nom de "Personal".

Lo que tengo hasta ahora es lo siguiente, pero no es bueno.

SUMX(FILTER(NOMINAL_INFO, NOMINAL_INFO[NOMGROUP]-"INCOME"),DWH_FACT_MAIN[VALUE])- SUMX(FILTER(NOMINAL_INFO, NOMINAL_INFO[NOMGROUP]-"EXPENDITURE"),DWH_FACT_MAIN[VALUE])- SUMX(FILTER(NOMINAL_INFO, NOMINAL_INFO[NOMGROUP]-"STAFF"),DWH_FACT_MAIN[VALUE])

Cualquier ayuda sería muy apreciada.

Gracias

Tom

1 ACCEPTED SOLUTION

@tom_cowling - Trate de envolver las referencias de columna en algo como MAX


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

6 REPLIES 6
pedrovr2020
Frequent Visitor

Hola una opcion seria de esta forma

dato =
var ing = CALCULATE( [ValorDetalle] , 'Nominal'[Nominal] =1000)
var gast = CALCULATE( [ValorDetalle]*-1 , 'Nominal'[Nominal] =1100)
var pers = CALCULATE( [ValorDetalle]*-1 , 'Nominal'[Nominal] =1200)
return
ing+gast+pers
-------------------------------
modelo de datos
datos.png
------------------------------
 

resultado

 

imgayda.png

 

 

amitchandak
Super User
Super User

@tom_cowling , no veo ningún problema de sintaxis. Esto se puede hacer como

SUMX(NOMINAL_INFO,Switch( true(),
								NOMINAL_INFO[NOMGROUP]="INCOME" , DWH_FACT_MAIN[VALUE],
								NOMINAL_INFO[NOMGROUP]="EXPENDITURE" ,-1* DWH_FACT_MAIN[VALUE], 
								NOMINAL_INFO[NOMGROUP]="STAFF",-1* DWH_FACT_MAIN[VALUE]))

¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla?

Datos de muestra a continuación:

dwh_fact_main

CuentaNominalValor
1234510006542
1234510002151
1234512006560
1234511008161
12345610001415
12345611005148
1234567100018411
1234567120011784

nominal_info

NominalNomgroup
1000Ingresos
1100Gasto
1200Personal

Salida esperada:

CuentaTotal
12345-6,028
123456-3,733
12345676,627

El error que recibo cuando uso mi consulta y @amitchandak's es el siguiente:

"Error semántico: el valor de la columna 'Valor' en la tabla 'DWH_FACT_MAIN' no se puede determinar en el contexto actual. Compruebe que existen todas las columnas a las que se hace referencia en la expresión de cálculo y que no hay dependencias circulares. Esto también puede ocurrir cuando la fórmula de una medida hace referencia directamente a una columna sin realizar ninguna agregación (como suma, promedio o recuento) en esa columna. La columna no tiene un solo valor, tiene muchos valores, uno para cada fila de la tabla y ahora se ha especificado la fila."

@tom_cowling - Trate de envolver las referencias de columna en algo como MAX


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Brilliant!

 

Thank you both for the swift responses. I used @amitchandak's code with the MAX wrapping on columns and that seems to have worked.

Greg_Deckler
Super User
Super User

@tom_cowling - ¿Recibe un error de sintaxis? Difícil de solucionar de lo contrario sin la fecha de origen de la muestra. No es realmente suficiente información para seguir adelante, por favor primero compruebe si su problema es un problema común enumerado aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882

Además, consulte este post sobre cómo obtener respuesta a su pregunta rápidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Datos de muestra como texto, utilice la herramienta de tabla en la barra de edición
2. Salida esperada de los datos de muestra
3. Explicación en palabras de cómo obtener de 1. a 2.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

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