Как конвертировать валюты в Excel на основе исторических курсов?
Я хочу сделать небольшую программу в Excel, которая позволяет пользователю конвертировать определенные валюты (доллары США, евро, дирхамы, швейцарские франки и фунты стерлингов) в кувейтский динар. Пользователь может установить сумму, валюту и месяц, а программа выдаст ответ в кувейтских динарах.
У меня есть обменные курсы в отдельном файле Excel - каждый месяц в электронной таблице, и у каждой электронной таблицы есть два столбца: валюта и курс.
Я должен умножить данное количество данной валюты на курс этой валюты в данный месяц. Как я могу это сделать?
1 ответ
Вы должны исследовать 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 на другом листе не будет работать.