Вам нужно исследовать 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 на другом листе не будет работать.