Forum Discussion
Variable line by line computation based on value in second table
Hi
Need some help here ... Tryitng to compute a "Currency Impact". Given a "base" table with, say, sales in local currency, and an exchange rate; given a "fxrate" table that is sliced to filter to a unique reference, how can I compute line-by-line and get the total ? The formula needs to be efficient, because there are easily 500'000 rows in "base". Not easy to explain the issue, so I made a little drawing! Any help is higly appreciated ...
HI Lecram36
First, you should know that:
1. Calculation column/table not support dynamic changed based on filter or slicer.
2. Measure can be affected by filter/slicer, so you can use it to get dynamic summary result in a visual.https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/
Second, for your case, you could try this way as below:
Step1:
Create a relationalship between Datatable and FXTable by Currency column.(This relationship will be many to many)
Step2:
Then create a measure as below:
Impact = SUMX('Data Table', CALCULATE(SUM('Data Table'[Sales])-SUM('Data Table'[Sales])*DIVIDE(SUM('Data Table'[FxRate]),SUM(FXTable[RefFxRate]))))Result:
and here is sample pbix file, please try it.
Regards,
Lin
4 Replies
- v-lili6-msft
Community Support
HI Lecram36
First, you should know that:
1. Calculation column/table not support dynamic changed based on filter or slicer.
2. Measure can be affected by filter/slicer, so you can use it to get dynamic summary result in a visual.https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/
Second, for your case, you could try this way as below:
Step1:
Create a relationalship between Datatable and FXTable by Currency column.(This relationship will be many to many)
Step2:
Then create a measure as below:
Impact = SUMX('Data Table', CALCULATE(SUM('Data Table'[Sales])-SUM('Data Table'[Sales])*DIVIDE(SUM('Data Table'[FxRate]),SUM(FXTable[RefFxRate]))))Result:
and here is sample pbix file, please try it.
Regards,
Lin
- parry2k
Super User
Lecram36 Based on your data table, it should be something like this, add as a column
Sales Impact = Table[Sales] - ( DIVIDE ( ( Table[Sales] * Table[FxRate] ), Table[RefFxRate] ) )I would ❤ Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!