Sep 18 2021 12:19 AM
Sep 18 2021 12:19 AM
I have a modified setup as figure below. I want to generalize my currency conversion to SEK from different currencies (not limited to the ones listed below). In other words, I want the same formula in C11 and downwards using the information provided. You can see some examples how the conversion is executed today in cells C11-C14. As you can see, most of the data is already in SEK and needs no conversion.
I'm not very good myself with this kinds of formulas, and would appreciate some input from the community. If there is a way to solve this without even using the ticker-rows, that would be even better!
Thanks in advance
Sep 18 2021 12:31 AM
@QWeelon Since you tagged your question with Office365, I assume your Excel version supports XLOOKUP. The attached workbook contains a mock-up based on your picture. See if it works for you and if you can implement it in your real life workbook.
By the way, you'll notice that I included one extra currency, the SEK, in the lookup table at the top with a rate of 1.00.
Sep 18 2021 12:45 AM
Sep 18 2021 12:54 AMSolution
@QWeelon Almost correct. You need to make the references to the lookup array and the return array absolute, using $ signs.
Removed the table style in the attached workbook, so that you can see what I mean. Though, I'd recommend to learn about structured tables. The will make your Excel-life a lot easier.
Sep 18 2021 01:04 AM
Sep 18 2021 01:15 AM
@QWeelon Var så god! Hela poängen med struktrerade tabeller är ju att du inte behöver ora dig när du lägger till några rader med valuta kurser. Allt uppdateras då automatisk utan att man måste skriva om alle formel som pekar till dessa valuta kurser. Men förstår vad du menar. Det ser inte så lätt ut om man inte är van med sådana tabeller.
Sep 18 2021 03:09 AM
One more variant is to use STOCKHISTORY function (microsoft.com) if it is available for your subscription.
Function returns exchange rates in the specified period, e.g.
=STOCKHISTORY("EUR/SEK",TODAY()-5, TODAY(), 0, 0, 1, 0)
returns EUR/SEK exchange rate for the latest 5 days. If interval is just TODAY() it returns current exchange rate - if only we have trading today. Function skips days without trading and if there are only such days within interval we have an error. Thus we need to take some range and take exchange rate for the latest trading date. Since function returns data from oldest to newest dates we need to sort returned array by date in descending order to have latest date on first position.
=SORT( STOCKHISTORY("EUR/SEK",TODAY()-5, TODAY(),0,0,1,0), 2, -1)
Now we don't need dates any more, only take the latest exchange rate
=INDEX( SORT( STOCKHISTORY("EUR/SEK",TODAY()-5, TODAY(),0,0,1,0), 2, -1), 1, 1)
Finally for such pattern
we apply currency format to column D, skip conversion if it is not required (initial price is in SEK) and apply above formula overwise to multiply price on exchange rate:
= IF( $B3 = "SEK", $C3, $C3 * INDEX( SORT( STOCKHISTORY($B3 & "/SEK",TODAY()-5, TODAY(),0,0,1,0), 2,-1), 1, 1) )
Please check in attached file.
Sep 18 2021 03:24 AM
Sep 18 2021 03:44 AM
If you need current exchange rate that doesn't work. STOCKHISTORY() has an option to show it on open, close, high and low for each day in interval.
Stock data type is updating constantly, thus you have the latest exchange rate for now. Not sure about delay in data, perhaps yes, 15 minutes. On the other hand you can't use currency pair as parameter here, it is predefined.
As for the refresh, option is coming for Excel. Not it is available for Beta version, it looks like