Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Добавление нескольких условий в формулу "ЕСЛИ" - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Добавление нескольких условий в формулу "ЕСЛИ"
Rabinovich Дата: Понедельник, 27.03.2017, 21:35 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый вечер, уважаемые эксперты Excel! В этой теме я спрашивал, как добавить условие, при котором расчет будет происходить в зависимости от одного условия, но в ходе работы выяснилось, что необходимо также применить еще одно условие. Дело в том, что одни из финансовых инструментов расчитываются в рублях, а другие в долларах. Проще говоря, мне нужно конвертировать суммарный итог в числовом выражении (J) из валюты в рубли . В связи с этим, я добавил второй лист с макросом, в котором будет отображаться текущий курс доллара ЦБ, необходимый для расчета шаг цены и стоимость шага цены. Задача заключается в том, чтобы дополнить формулу в столбце
"J", при условии, если в столбце "B" значение "Gold" и "Brent" будет умножаться на стоимость шага цены и каждый из вышеперечисленных значений на свой шаг цены (см. второй лист) В примитивном выражении, это будет примерно так:
Код
=если(B3="brent";(формула из ячейки J3)*E10*F10(из другого листа)
(Извиняюсь за тупой пример) и аналогично со значением Gold .В текущей версии она считает маржу по данной формуле
Код
=ЕСЛИ(D3="long";(G3-C3)*F3;(C3-G3)*F3)
и учитывает только условие из столбца "D". Каким образом можно дополнить ее, чтобы другие условия в столбце "В" не были затронуты? Надеюсь смог понятно описать:) Заранее благодарю Вас за ответы!
К сообщению приложен файл: 3355454.xlsm (51.2 Kb)


Сообщение отредактировал Rabinovich - Понедельник, 27.03.2017, 21:46
 
Ответить
СообщениеДобрый вечер, уважаемые эксперты Excel! В этой теме я спрашивал, как добавить условие, при котором расчет будет происходить в зависимости от одного условия, но в ходе работы выяснилось, что необходимо также применить еще одно условие. Дело в том, что одни из финансовых инструментов расчитываются в рублях, а другие в долларах. Проще говоря, мне нужно конвертировать суммарный итог в числовом выражении (J) из валюты в рубли . В связи с этим, я добавил второй лист с макросом, в котором будет отображаться текущий курс доллара ЦБ, необходимый для расчета шаг цены и стоимость шага цены. Задача заключается в том, чтобы дополнить формулу в столбце
"J", при условии, если в столбце "B" значение "Gold" и "Brent" будет умножаться на стоимость шага цены и каждый из вышеперечисленных значений на свой шаг цены (см. второй лист) В примитивном выражении, это будет примерно так:
Код
=если(B3="brent";(формула из ячейки J3)*E10*F10(из другого листа)
(Извиняюсь за тупой пример) и аналогично со значением Gold .В текущей версии она считает маржу по данной формуле
Код
=ЕСЛИ(D3="long";(G3-C3)*F3;(C3-G3)*F3)
и учитывает только условие из столбца "D". Каким образом можно дополнить ее, чтобы другие условия в столбце "В" не были затронуты? Надеюсь смог понятно описать:) Заранее благодарю Вас за ответы!

Автор - Rabinovich
Дата добавления - 27.03.2017 в 21:35
Che79 Дата: Понедельник, 27.03.2017, 23:49 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
Rabinovich, посмотрите, так нужно? Вариант "в лоб". Можно сделать короче, но в понедельник вечером почему-то совсем не думается.
В J2:
Код
=ЕСЛИ(И(D2="long";B2="Gold");(G2-C2)*F2*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$G$10;ЕСЛИ(И(D2="long";B2="Brent");(G2-C2)*F2*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$F$10;(C2-G2)*F2))


Делай нормально и будет нормально!
 
Ответить
СообщениеRabinovich, посмотрите, так нужно? Вариант "в лоб". Можно сделать короче, но в понедельник вечером почему-то совсем не думается.
В J2:
Код
=ЕСЛИ(И(D2="long";B2="Gold");(G2-C2)*F2*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$G$10;ЕСЛИ(И(D2="long";B2="Brent");(G2-C2)*F2*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$F$10;(C2-G2)*F2))

Автор - Che79
Дата добавления - 27.03.2017 в 23:49
Rabinovich Дата: Вторник, 28.03.2017, 00:40 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Che79, Да, вроде это как раз то что нужно, но формула не совсем полная. Я так понимаю, корректно должно быть так:
Код
=ЕСЛИ(И(D4="long";B4="Gold");(G4-C4)*F4;(C4-G4)*F4*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$G$10;ЕСЛИ(И(D4="long";B4="Brent");(G4-C4)*F4;(С4-G4)*F4*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$F$10;(C4-G4)*F4))
но увы, при таком раскладе эксель уже выдает мне ошибку, что формула слишком большая:(
P.S. может ошибаюсь с предположением касательно формулы, но почему-то не сходится. Исправил ошибку с шагом цены. В примере во вложенном файле, должно получится 285.
К сообщению приложен файл: 3728091.xlsm (51.2 Kb)


Сообщение отредактировал Rabinovich - Вторник, 28.03.2017, 00:57
 
Ответить
СообщениеChe79, Да, вроде это как раз то что нужно, но формула не совсем полная. Я так понимаю, корректно должно быть так:
Код
=ЕСЛИ(И(D4="long";B4="Gold");(G4-C4)*F4;(C4-G4)*F4*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$G$10;ЕСЛИ(И(D4="long";B4="Brent");(G4-C4)*F4;(С4-G4)*F4*'Курсы валют ЦБ'!$E$10*'Курсы валют ЦБ'!$F$10;(C4-G4)*F4))
но увы, при таком раскладе эксель уже выдает мне ошибку, что формула слишком большая:(
P.S. может ошибаюсь с предположением касательно формулы, но почему-то не сходится. Исправил ошибку с шагом цены. В примере во вложенном файле, должно получится 285.

Автор - Rabinovich
Дата добавления - 28.03.2017 в 00:40
Rabinovich Дата: Вторник, 28.03.2017, 00:43 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Было бы идеальным какое-то решение, при котором можно было бы сократить эту формулу, так как значения в столбце "B" вероятно будут пополняться и таких формул excel точно не выдержит.


Сообщение отредактировал Rabinovich - Вторник, 28.03.2017, 00:46
 
Ответить
СообщениеБыло бы идеальным какое-то решение, при котором можно было бы сократить эту формулу, так как значения в столбце "B" вероятно будут пополняться и таких формул excel точно не выдержит.

Автор - Rabinovich
Дата добавления - 28.03.2017 в 00:43
gling Дата: Вторник, 28.03.2017, 01:18 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2640
Репутация: 737 ±
Замечаний: 0% ±

2010
Можно так попробовать.
Код
=(1-(D2="Short")*2)*(G2-C2)*F2*'Курсы валют ЦБ'!$E$10*СУММЕСЛИ('Курсы валют ЦБ'!$E$1:$Q$1;B2;'Курсы валют ЦБ'!$E$10:$Q$10)
или так
Код
=ЕСЛИ(D2="long";(G2-C2);(C2-G2))*F2*'Курсы валют ЦБ'!$E$10*СУММЕСЛИ('Курсы валют ЦБ'!$E$1:$Q$1;B2;'Курсы валют ЦБ'!$E$10:$Q$10)
К сообщению приложен файл: 0839758.xlsm (52.9 Kb)


ЯД-41001506838083

Сообщение отредактировал gling - Вторник, 28.03.2017, 01:29
 
Ответить
СообщениеМожно так попробовать.
Код
=(1-(D2="Short")*2)*(G2-C2)*F2*'Курсы валют ЦБ'!$E$10*СУММЕСЛИ('Курсы валют ЦБ'!$E$1:$Q$1;B2;'Курсы валют ЦБ'!$E$10:$Q$10)
или так
Код
=ЕСЛИ(D2="long";(G2-C2);(C2-G2))*F2*'Курсы валют ЦБ'!$E$10*СУММЕСЛИ('Курсы валют ЦБ'!$E$1:$Q$1;B2;'Курсы валют ЦБ'!$E$10:$Q$10)

Автор - gling
Дата добавления - 28.03.2017 в 01:18
Rabinovich Дата: Вторник, 28.03.2017, 10:16 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Подставил Ваши формулы, но увы, ни одна не рассчитывает корректно. Повторюсь, в моем примере должна получиться сумма 285
К сообщению приложен файл: 6561171.xlsm (51.2 Kb)


Сообщение отредактировал Rabinovich - Вторник, 28.03.2017, 12:54
 
Ответить
СообщениеПодставил Ваши формулы, но увы, ни одна не рассчитывает корректно. Повторюсь, в моем примере должна получиться сумма 285

Автор - Rabinovich
Дата добавления - 28.03.2017 в 10:16
_Boroda_ Дата: Вторник, 28.03.2017, 11:02 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16885
Репутация: 6599 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Rabinovich, излишнее цитирование запрещено Правилами форума
Прочитайте их и исправьте свой пост


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеRabinovich, излишнее цитирование запрещено Правилами форума
Прочитайте их и исправьте свой пост

Автор - _Boroda_
Дата добавления - 28.03.2017 в 11:02
Pelena Дата: Вторник, 28.03.2017, 11:45 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19511
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
По логике на величину шага надо делить, а не умножать, чтобы найти количество шагов, а уже потом умножать на стоимость шага
Код
=ЕСЛИ(D4="long";(G4-C4);(C4-G4))*F4*'Курсы валют ЦБ'!$E$10/СУММЕСЛИ('Курсы валют ЦБ'!$E$1:$Q$1;B4;'Курсы валют ЦБ'!$E$10:$Q$10)

Ответ скрыт до исправления замечания модератора

Ответ открыл
_Boroda_


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПо логике на величину шага надо делить, а не умножать, чтобы найти количество шагов, а уже потом умножать на стоимость шага
Код
=ЕСЛИ(D4="long";(G4-C4);(C4-G4))*F4*'Курсы валют ЦБ'!$E$10/СУММЕСЛИ('Курсы валют ЦБ'!$E$1:$Q$1;B4;'Курсы валют ЦБ'!$E$10:$Q$10)

Ответ скрыт до исправления замечания модератора

Ответ открыл
_Boroda_

Автор - Pelena
Дата добавления - 28.03.2017 в 11:45
Rabinovich Дата: Вторник, 28.03.2017, 15:53 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, Замечания исправил.
 
Ответить
Сообщение_Boroda_, Замечания исправил.

Автор - Rabinovich
Дата добавления - 28.03.2017 в 15:53
Rabinovich Дата: Вторник, 28.03.2017, 18:29 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, Ваш пост навел меня на мысль, что в формуле есть ошибка, и действительно, оказалось изначально я не правильно поставил условия задачи и не правильно указал шаг цены. На самом деле формула должна быть такая (в числовом значении на примере из 4 строки):
Код
0,50*1*570,2
. Т.е. разница между ценой открытия и закрытия сделки (в зависимости от позиции), умноженная на кол-во контрактов и умноженная на шаг цены (в зависимости от инструмента). Очень прошу Вас написать корректную формулу еще раз, теперь в условиях все правильно. (во вложении скорректированный шаг цены для обоих инструментов Заранее спасибо!
К сообщению приложен файл: 3821745.xlsm (51.2 Kb)
 
Ответить
СообщениеPelena, Ваш пост навел меня на мысль, что в формуле есть ошибка, и действительно, оказалось изначально я не правильно поставил условия задачи и не правильно указал шаг цены. На самом деле формула должна быть такая (в числовом значении на примере из 4 строки):
Код
0,50*1*570,2
. Т.е. разница между ценой открытия и закрытия сделки (в зависимости от позиции), умноженная на кол-во контрактов и умноженная на шаг цены (в зависимости от инструмента). Очень прошу Вас написать корректную формулу еще раз, теперь в условиях все правильно. (во вложении скорректированный шаг цены для обоих инструментов Заранее спасибо!

Автор - Rabinovich
Дата добавления - 28.03.2017 в 18:29
Pelena Дата: Вторник, 28.03.2017, 19:02 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19511
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
Код
=ЕСЛИ(D4="long";(G4-C4);(C4-G4))*F4*ГПР("*"&B4;'Курсы валют ЦБ'!$E$1:$Q$100;10;0)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Код
=ЕСЛИ(D4="long";(G4-C4);(C4-G4))*F4*ГПР("*"&B4;'Курсы валют ЦБ'!$E$1:$Q$100;10;0)

Автор - Pelena
Дата добавления - 28.03.2017 в 19:02
Rabinovich Дата: Вторник, 28.03.2017, 20:16 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, С Brent и Gold все работает верно, но теперь не считаются остальные инструменты (например LKOH).
 
Ответить
СообщениеPelena, С Brent и Gold все работает верно, но теперь не считаются остальные инструменты (например LKOH).

Автор - Rabinovich
Дата добавления - 28.03.2017 в 20:16
Pelena Дата: Вторник, 28.03.2017, 21:08 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19511
Репутация: 4620 ±
Замечаний: ±

Excel 365 & Mac Excel
А как их считать? Попробую догадаться
Код
=ЕСЛИ(D4="long";(G4-C4);(C4-G4))*F4*ЕСЛИОШИБКА(ГПР("*"&B4;'Курсы валют ЦБ'!$E$1:$Q$100;10;0);1)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеА как их считать? Попробую догадаться
Код
=ЕСЛИ(D4="long";(G4-C4);(C4-G4))*F4*ЕСЛИОШИБКА(ГПР("*"&B4;'Курсы валют ЦБ'!$E$1:$Q$100;10;0);1)

Автор - Pelena
Дата добавления - 28.03.2017 в 21:08
Rabinovich Дата: Вторник, 28.03.2017, 21:21 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 17
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Pelena, Теперь все сходится, большое спасибо!
 
Ответить
СообщениеPelena, Теперь все сходится, большое спасибо!

Автор - Rabinovich
Дата добавления - 28.03.2017 в 21:21
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!