Страницы: 1
RSS
Выбор кросс-курса по соотношению валют
 
Граждане Форумчане, нужна посильная помощь:
нужно вытянуть кросс-курс валют в зависимости от двух условий:
1. валюта расходов
2. валюта расчетов.

При условии наличия 4-х валют( в моем случае), должно быть 16 соответствий; если валюты совпадают курс 1, если нет - вытягиваем соотв. значение из закладки курсы......
у меня на четвертом вложенном ЕСЛИ, уже ничего не получается
Ребята помогите, может можно сделать все проще
 
В ПРАВИЛА!
Что можно понять из названия темы? Что Вы применяете ЕСЛИ().
Проблема в чем? У Вас нет этой функции? Вы хотите получить решение только таким путем?
 
Vikttur, Спасибо, за столь оперативный ответ....
1. да, можно понять, что я применяю многократное ЕСЛИ
2. проблема в том, что в моем случае ( 2 условия, по 4 варианта в каждом =  16 соответствий), на 4-м ЕСЛИ  формула не рассчитывается
3. функция есть
4. "....может можно сделать все проще"  - "Вы хотите получить решение только таким путем?" - допускаю получение наиболее оптимальным путем
5. прошу помочь прописать формулу ( т.к выдает ошибку и сообщение "слишком много аргументов" - вероятно - неверно расставлены скобки)
пример:
если валюта1 = BYR, валюта2= USD, кросс-курс на дату .....
если валюта1= BYR, валюта 2= EUR, кросс - курс на дату ......
если валюты совпадают, курс 1
во вложенном файле, ячейка ( с моими попытками "нарисовать") выделена красным
 
Т.е. без ЕСЛИ() Вы жить не сможете?
Если же допускаете, что возможно решение другим методом, то с какого боку прицепите название этой функции?
Вы ознакомились с правилами?

Еще раз: как назвать тему, чтобы она отражала суть вопроса?

Пока Вас дождешься... Переименовал.
 
Жаль, я в пока плохо знаю инструменты ВБА, чтобы быстро написать ответ. Если приглядеться, то это довольно тривиальная задача для скриптеров. Тут UDF делается довольно легко через кейс селект и в каждом из кейсов по лупу. Попытаюсь сделать через средства икселя.
С уважением,
Федор/Все_просто
 
vikttur, название суть вопроса отражает, спасибо
 
Цитата
Милка пишет:
если валюты совпадают курс 1, если нет - вытягиваем соотв. значение из закладки курсы
Так что ли надо?
Код
=ЕСЛИ(C9=F9;1;ВПР(C$1;курсы!A$1:F$246;ПОИСКПОЗ(F9;курсы!A$1:G$1;);))
 
Это драфт UDF. Нужно вместо vp(Date) лукапнуть курс

Код
Public Function kurs(da As Date, k1 As String, k2 As String)
    Dim a, b, c, d As String
    a = "byr"
    b = "rur"
    c = "usd"
    d = "eur"
    Select Case k1
    
    Case a
            If k2 = a Then kurs = 1
            If k2 = b Then kurs = vp(Date)
            If k2 = c Then kurs = vp(Date)
            If k2 = d Then kurs = vp(Date)
    Case b

            If k2 = a Then kurs = vp(Date)
            If k2 = b Then kurs = 1
            If k2 = c Then kurs = vp(Date)
            If k2 = d Then kurs = vp(Date)
    Case c

            If k2 = a Then kurs = vp(Date)
            If k2 = b Then kurs = vp(Date)
            If k2 = c Then kurs = 1
            If k2 = d Then kurs = vp(Date)

    Case d
            If k2 = a Then kurs = vp(Date)
            If k2 = b Then kurs = vp(Date)
            If k2 = c Then kurs = vp(Date)
            If k2 = d Then kurs = 1

    Case Else
        MsgBox ("something is wrong")
    
    End Select
                
End Function
Изменено: Все_просто - 10.07.2013 23:30:16
С уважением,
Федор/Все_просто
 
Цитата
Serge 007 пишет: Так что ли надо?
ну не совсем:
по части 1(С9=F9) -именно так,
но в остальном, мне нужно вытянуть соответствующий двум условиям(валюте в ячейках С9 и F9) курс, т.е. если у меня в С9 - BYR, то с закладки "курсы" тянутся колонки 2,3,4(курсы BYR к соотв.валюте) .
если С9= USD ,F9=RUR - кросс-курс рубля к доллару и т.п
 
Цитата
Милка пишет:
если у меня в С9 - BYR, то с закладки "курсы" тянутся колонки 2,3,4(курсы BYR к соотв.валюте).
На листе "курсы" я вообще не нашел BYR
Сделайте файл на десяток строк, в которых укажите разные варианты и вручную проставьте желаемый результат
 
Все_просто, гхм, а можете мне файл форварднуть с сим вычислением?
 
Цитата
Serge 007 пишет: Сделайте файл на десяток строк, в которых укажите разные варианты и вручную проставьте желаемый результат
лист -пример
Изменено: Милка - 10.07.2013 23:56:02
 
Я доделываю скрипт, но ничего обещать не могу. Это фактически мой первый опыт и поэтому могут быть ошибки.
С уважением,
Федор/Все_просто
 
Милка, а без цитирования никак?
 
Тупо "в лоб" без оптимизации:
Код
=ЕСЛИ(A2=B2;1;ВПР(C2;курсы!A$1:G$246;СУММ(ЕСЛИ(ЕНД(ПОИСКПОЗ(A2&"/"&B2;курсы!B$1:G$1;));0;ПОИСКПОЗ(A2&"/"&B2;курсы!B$1:G$1;));ЕСЛИ(ЕНД(ПОИСКПОЗ(B2&"/"&A2;курсы!B$1:G$1;));0;ПОИСКПОЗ(B2&"/"&A2;курсы!B$1:G$1;)))+1;0))


ЗЫ В D13 на листе "пример" у Вас неправильное значение
 
А Вас это так сильно напрягает? или я что-то упустила и цитировать нельзя по правилам форума?

P.S. я сообщение написала не потому, что мне нечем заняться, а потому что помощь нужна
 
Милка, трам-та-ра-рам!
Сколько раз можно просить почитать правила?
Ну, надоело же прибираться за Вами! Например, для чего воспроизводить в своем сообщении весь показанный выше код?
Посмотрите свои сообщения. Лишнее убрал.
В дальнейшем постарайтесь не уподобляться мартышке, просто нажимающей кнопку.
 
не работает у меня формула, при любой комбинации =1
действительно ошибка, сорри
 
Вот конечная версия, но она почему-то не работает. Может кто-нибудь из асов ВБА укажет на мою ошибку? Не ругайте, если что не так.
Скрытый текст
Изменено: Все_просто - 11.07.2013 00:22:22
С уважением,
Федор/Все_просто
 
Цитата
Милка пишет: не работает у меня формула
 
Цитата
Милка пишет:
при любой комбинации =1
Странно! У меня работает. И эта тоже:
Код
=ЕСЛИ(A2=B2;1;ИНДЕКС(курсы!B:G;ПОИСКПОЗ(C2;курсы!A:A;0);ЕСЛИОШИБКА(ПОИСКПОЗ(A2&"/"&B2;курсы!B$1:G$1;0);ПОИСКПОЗ(B2&"/"&A2;курсы!B$1:G$1;0))))
 
Nic70y, я стараюсь формулы, работающие во всех версиях выкладывать :)
 
Ребята, работает:)
спасибо огромное
Модераторы - не обижайтесь на, хм, "мартышку" - буду стараться излагаться более доходчиво :)
Страницы: 1
Читают тему
Наверх