Вам нужно расследовать VLookup
и Indirect
. VLookup
позволяет вам запросить в ячейке значение (в вашем случае тип входной валюты) и найти таблицу, чтобы найти это значение и вернуть значение в той же строке в другом столбце этой таблицы (в вашем случае - обменный курс ).
Indirect
позволяет использовать строку в качестве ссылки на местоположение листа. Таким образом, если содержимое ячейки A1 = 'X256', вы можете использовать формулу, =10*Indirect(A1)
и результат будет таким, который находится в ячейке X256, умноженным на 10
Предполагая, что лист, который заполняет ваш пользователь, выглядит примерно так
A | B | C | D 1 ConvertAmount | Month | ExchangeCurrency | ExchangeAmount 2 25.00 | Jan | GBP |
остальные листы называются январь, февраль, март, апрель и т. д. и имеют тип валюты в алфавитном порядке, а также валюту и курс в столбцах А и В соответственно на каждом листе.
Вы можете использовать формулу, например:
=VLOOKUP(C2, INDIRECT(CONCATENATE(B2, "!A1:B5")),2, FALSE)*A2
в ячейке D2, чтобы получить требуемый результат. Обратите внимание, что вы захотите установить этот диапазон в соответствии с количеством валют, из которых вы конвертируете.
Возможно, вы захотите убедиться, что пользователь может вводить только те значения, которые соответствуют вашим настройкам, возможно, с использованием проверки. Например, если пользователь вводит январь вместо января, трюк со ссылками на лист не будет работать. Кроме того, если пользователь введет «фунт стерлингов» вместо фунта стерлингов, VLookup на другом листе не будет работать.