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
MTrullàs
Helper III
Helper III

Mesure Actual Available balance

Hello!

I have a table in Power BI, with the four columns like a screenshoot (ID; MARKET; PREICE; Available balance). I need to creat a mesure in DAX to get Actual Available balance like a this formul in EXCEL.

 

Thank you very much!

 

Regards

 

MTrulls_0-1712246112761.png

 

 

IDMARKETPREICEAvailable balanceActual Available balance
14I05010972,912131354,4112120381,51
24I05011126,5512131354,4112109254,96
34I05011126,5512131354,4112098128,41
44I05011126,5512131354,4112087001,86
54I05011126,5512131354,4112075875,31
64I01411376,174822998,994811622,82
74I01411376,174822998,994800246,65
84I01411376,174822998,994788870,48
94I01411376,174822998,994777494,31
104I01411376,174822998,994766118,14
114I01411376,174822998,994754741,97
124I01411376,174822998,994743365,8
134I01411376,174822998,994731989,63
144I01411376,174822998,994720613,46
154I01411376,174822998,994709237,29
164I01411376,174822998,994697861,12
174I01411376,174822998,994686484,95
184I01411376,174822998,994675108,78
194I01411376,174822998,994663732,61
204I01411376,174822998,994652356,44
214I01411376,174822998,994640980,27
224I01411376,174822998,994629604,1
234I01411376,174822998,994618227,93
244I01411376,174822998,994606851,76
254I01411376,174822998,994595475,59
264I01411376,174822998,994584099,42
274I01411376,174822998,994572723,25
284I01411376,174822998,994561347,08
294I01411376,174822998,994549970,91
304I01411376,174822998,994538594,74
314I01411376,174822998,994527218,57
324I01411376,174822998,994515842,4
334I01411376,174822998,994504466,23
344I01411376,174822998,994493090,06
354I01411376,174822998,994481713,89
364I01411376,174822998,994470337,72
374I01411376,174822998,994458961,55
384I01411376,174822998,994447585,38
394I05011385,3812131354,4112119969,03
404I01411560,724822998,994811438,27
414I01411560,724822998,994799877,55
424I01411560,724822998,994788316,83
2 ACCEPTED SOLUTIONS

Your implementation looks correct.  Please elaborate on "hasn't worked correctly". What is your expected outcome?

 

The Power Query implementation would be very similar.

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("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", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Numero Bastidor" = _t, Importador = _t, PRECIO_FINAL = _t, #"IMPORTE DISPONIBLE" = _t]),
    #"Replaced Value" = Table.ReplaceValue(Source," €","",Replacer.ReplaceText,{"PRECIO_FINAL", "IMPORTE DISPONIBLE"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value",{{"Numero Bastidor", Int64.Type}, {"Importador", type text}, {"PRECIO_FINAL", Currency.Type}, {"IMPORTE DISPONIBLE", Currency.Type}},"en-US"),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Actual", (k)=> k[IMPORTE DISPONIBLE]-List.Sum(Table.SelectRows(#"Changed Type",each [Importador]=k[Importador] and [Numero Bastidor]<=k[Numero Bastidor])[PRECIO_FINAL]), Currency.Type)
in
    #"Added Custom"

View solution in original post

You cannot measure a measure directly. Either materialize it first, or create a separate measure that implements the entire business logic.

View solution in original post

6 REPLIES 6
MTrullàs
Helper III
Helper III

Thank you very much for your help.

I apologize for the delay in my response and acceptance of the solution. I have been having issues with currency formatting, which has caused some incidents.

However, I now have a problem determining how many 'Actual' values are positive and how many are negative for each importer. I have created the following measure (Measure = IF([Actual] < 0, "no", "yes")), but when I apply it in a matrix, it does not work for me. How could I solve this? Thank you very much in advance. Regards

 

MTrulls_0-1712729669555.png

 

To try to provide more detail on this issue. Why does the following measure also count negative "Actual" values? 

Conteo_Actual_Positivos =
COUNTROWS(
    FILTER(
        'SCUD',
        'SCUD'[Actual] > 0
    )
)
How could I solved it?
 
MTrulls_0-1712755485324.png

 

You cannot measure a measure directly. Either materialize it first, or create a separate measure that implements the entire business logic.

lbendlin
Super User
Super User

You have an error in line 39

 

lbendlin_0-1712252787196.png

Actual = 
var I = max('Table'[ID])
return max('Table'[Available balance])-CALCULATE(sum('Table'[PRiCE]),'Table'[ID]<=I)

Thank you very much for the response.

 

I've tried the proposed solution, but it hasn't worked correctly for me, and I don't understand why. I'm attaching a link where you can find the example PBI. It would also be extremely helpful if I could apply this same requested logic in Power Query. Thank you very much in advance.

 

https://drive.google.com/file/d/1I2wEI0RTynwez760qE4wCvESsZb2hhwq/view?usp=drive_link

 

 

Your implementation looks correct.  Please elaborate on "hasn't worked correctly". What is your expected outcome?

 

The Power Query implementation would be very similar.

 

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("lZtdcuUoDEa3MpVnyiUJoZ8lzBq6ejOznlnVrGTwvUnAHRv7e0lVdx9hwUGAcfrXrw/+KB9Wrf9kKcm8Zfz13z//9j8LlfQsEbRlvv7ud/n1Id+8SBGxTWXJV5DXA9//jXjJN7B9A3kH+QD5BHkmNIDRAFQxo45Z0QDUMqOaGfXMqGhGTctuWv/efzIX7gGtfQb0UmXhIk035RHAI2BvUbZc84I+oIIP0MG3YuRbyDqgzRlJtE1iHWBoFxwNiLkPJLzJTUCOAC0putF6lCodnqCyyU3A5NkKtd4HXwcM0aKltdzyJmCIFiuivum601XRJzT0CTYHkLTbJzgaEGjAMC3ZZ6vdTQ0dpqUV76Pk63pQBodVUdM6me71QLnZTUqKBkymqWjSbUqGPsHRTr/W7kZvIKlt/P2EDvdGyHTjKSDnAKG+8K0DXuh4Qvg0Nc4DeA5oPV+5eYKgT6hogKIBDR0lQwMcHaVA+4CaNkIDGA0QNOBg2rJt6z6bog9o4KiagRk5mlGgAahnf6/duwuO4hmbffJaoh/osv/N/NrAGC4YXgeefQGTcbA65xXkG5aOgc37zBPLWLDP+Ri8FuEc8+2cz2++L/6N2zhcnPKBuQ3MbQiWfQy5/ZTA3k+c+s3vMzNCvrbEF68g30DeQH7Ybf0toZ9nXZb8sNv4PT5LPCE8h9v9tYtjbBnSpx4VIhowI/Dw2s+L7m3za/ZQsEKxsV3DisANgQ2BHYEDgROAmQiiGaIFohGLTIhGJsQjEyKSCTHJhKjsx/NRBVSYeaz9JzQfXKbZprmgIZcMuWTIJUMuGXLJkEuGXDLkkqG6FKguBXIpkEuZdsz7OSgK0Q2iDaIhlxJQ25DLSkjbFXJZIZd1cnm3q3KFVFaoLCtUlhVS+bpqaq/LGvGiZBt931gUMSku9HX1+Q5IMODzqmkfzP5+o5kjHyU5ZvN5y/RiWzGT8Q3oJytzu/tRX67brYPVwmlb8iWrANvmfFVk4+t8DRgHB8YhADafs+3gzfpZ1tsly89dNHk+vq3O+br3HPySVYBtQL4GsD73TXpxXKcQQLP5fMiM5mEQadM70g8WKDc7aNvflPlyOlh93jdTgAW02UGbJ6/GASg3O5TbeppZPs/XCWCBcnNgmXRgmfTDMrl/XPo+P/9k2/PxdXs+vn4ot2C9LjcHys0BbXEoN+pd48scgp8PbwDaAtAWB23LFSraAZXc4pq1xyYCKLYArMVhkWypW14uUHmw1oQXOeRhkVxPyASsJWAtJ2teKOdrzR8ssEgmsLelA2zMfVtvFvm82oTo8ZgJHapN+zzzqw1AaPJ2s2kKDW/7x9n9XHQ1d4SGN+n5Wj/zXS2SQsPb63IzNruaZ0I2tysxfaj/yTrQbgD5vry9Fon9m/P+jeITFfcio/5e9Pu65U337Zhpus88w3ng+4T3IfoUl7n1fU2xZet14FysyXiHOcV1bl18mqGneDvg2cat8yluWDKO4YHhecAzNl11VQ5WVdv4oHCK89y67r9SFytcDnib36nP8Iq1frB6O2ekYV2drPY3w4j1fJfJKpXoyaxxzKokNDJ1store3+rXSVT+QOZ75+XMPHGc/9G8lXaLFFMeSOZ8IrhiuHtG98X/jZ19RS3I66bLFt3DA8MTwj/vId5jPPA918p8q9P0Be4YK1XDNcZ15jOYKf4waqpTr8deEIbRGNONbDMMacNc9oYwyenD6ZAOzjd17BYdbUpMuytYakbNOzNMRwr1JbQOBphOCbVsEK1ilgyrE4NqlPDFl/DCtWwQjWsUB0rVGdkYFyg1B1S6opljtWpQ2uvY0odK1PHlAYhqQdDjuKPKr05lwS2ncbk9MEKE1CZBlamgTkNzGlgThNympjTxFbexJwmVqeJ1WliUnOS+mCCZUDDDjmthDitBO2mlQRqHFJaCTkhVYKMVoJOSJUgo5WgMq2USE+ZoNQZU8pQmVZGdtPKkFLGlDJUpJWhlbfypPTBDGCsSgU6IFXBnArmVLA6FWjprdKggRTMqmBWBVl6q2BSKya1IqfeWqFTb53ukZ6MeoWOSPXPe6S7nmJOsXukWiGn2DVSxa6RqmKFil0jVewaqWLXSPV4jXSPY1IVunOo80WSF3ddvhHU+SLpAT5fJD3BGcMFw6cr3/13yuzrf8xd4IrhDUvGMNznZHT/2rbEMavTTdKTrk43SU+SmW6SHrUuGF6hrs5XSU/wYXX/miO8sa5wzKo51lXMqmFWHatVx2rVn9fq7/8B", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Numero Bastidor" = _t, Importador = _t, PRECIO_FINAL = _t, #"IMPORTE DISPONIBLE" = _t]),
    #"Replaced Value" = Table.ReplaceValue(Source," €","",Replacer.ReplaceText,{"PRECIO_FINAL", "IMPORTE DISPONIBLE"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value",{{"Numero Bastidor", Int64.Type}, {"Importador", type text}, {"PRECIO_FINAL", Currency.Type}, {"IMPORTE DISPONIBLE", Currency.Type}},"en-US"),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Actual", (k)=> k[IMPORTE DISPONIBLE]-List.Sum(Table.SelectRows(#"Changed Type",each [Importador]=k[Importador] and [Numero Bastidor]<=k[Numero Bastidor])[PRECIO_FINAL]), Currency.Type)
in
    #"Added Custom"

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.