Помогите решить задачку. Задачка для меня сложная, поэтому и прошу помощи.
Имеем 3 вида котировок
2 знака после запятой GOLD/CFD 1664,55 3 знака после запятой EUR/JPY 93,522 5 знаков после запятой EUR/USD 1,35505
Появилась сложность при расчетах.
2 строка, в ячейке M3 используется в расчетах умножение на 10 3 строка, в ячейке M3 используется в расчетах умножение на 100 4 строка, в ячейке M3 используется в расчетах умножение на 10000
Нужна единая формула. Не меняя основного скелета, но с учетом приведенных ниже условий. Какие условия должна содержать формула, чтобы производить правильное деление? Возьму на примере 2 строки
Если ячейка F2 содержит CFD то делим на 10 в противном случае умножение на 10000 Если ячейка F2 содержит JPY то делим на 100 в противном случае умножение на 10000 Если ячейка F2 содержит USD то делим на 10000 в противном случае умножение на 10000
Nic70y, на кол-во знаков в формуле лучше не полагаться - котировка может быть с нулями в конце (напр., для EUR/JPY будет фактически равна 93,520, отображена как 93,52, а обрабатываться должна как "трехзначная")
Все равно не то что нужно получается, поставил для столбца G и I текстовый формат....при вычислении 1,3520+1,3540 ответ получается 2 пп, что не есть истина (ответ 20 пп). А нельзя сделать формулу что бы ссылалась именно на те условия которые я описал выше. Если тикер в конце столбце F (по умолчанию для начальной формулы F2) содержит котировку JPY умножение на 100, если содержит USD умножение на 10000, если содержит CFD умножение на 10. Давно бьюсь над этой задачей еще не встречал аналогов. P.S. Тут такие мысли сразу говорю могу написать бред, но вижу как то так, что сначала в формуле пойдет =ЕСЛИ(ЕПУСТО(G7);0;ЕСЛИ(ЕПУСТО(I7);0 =ЕСЛИ(F2="JPY"; расчет для buy и sell с умножение на 100; расчет для buy и sell с умножение на 10000); =ЕСЛИ(F2="CFD"; расчет для buy и sell с делением на 10; расчет для buy и sell с делением на 10000); =ЕСЛИ(F2="USD"; расчет для buy и sell с умножение на 10000; расчет для buy и sell с умножение на 10000) ; ))) Понимаю что выглядит как бред, но вижу решение как то так.
Блин себя запутал и других запутал с делением (в голову встряло) умножать там нужно, ну вот что то хоть начало получатся =ЕСЛИ(ЕПУСТО(G2);0;ЕСЛИ(ЕПУСТО(I2);0)+ЕСЛИ(F2="CFD";ЕСЛИ(C2="Sell";(G2-I2)*10;ЕСЛИ(C2="buy";(I2-G2)*10;ЕСЛИ(C2="Sell";(G2-I2)*10000;ЕСЛИ(C2="buy";(I2-G2)*10000;)))))) это все первая часть уравнения для CFD, нужно еще добавить для JPY где умножаем на 100 и для USD где умножаем на 10000 Странно, когда значение забиваю результат не сразу показывает.
Нет в вашем примере не верно. Накидал логику Проверка на наличие пустых ячеек =ЕСЛИ(ЕПУСТО(G2);0;ЕСЛИ(ЕПУСТО(I2);0) Проверка на содержание (CFD, USD, JPY) в ячейке F2 незнаю как написать Расчет если в F2 "CFD" C2="Sell";(G2-I2)*10;ЕСЛИ(C2="buy";(I2-G2)*10 Расчет если в F2 "JPY" C2="Sell";(G2-I2)*100;ЕСЛИ(C2="buy";(I2-G2)*100 Расчет если в F2 "USD" C2="Sell";(G2-I2)*10000;ЕСЛИ(C2="buy";(I2-G2)*10000 В всех остальных случаях C2="Sell";(G2-I2)*10000;ЕСЛИ(C2="buy";(I2-G2)*10000
Есть разные типы котировок - прямая валютная котировка USD/JPY-, USD/CAD - обратная валютная котировка GBP/USD, EURUSD - кросс-курс EUR/GBP, EUR/JPY Еще и золото обозвал CFD http://prntscr.com/ryory Естественно нужно считать после сделки Buy Sell цена открытия-цена закрытия, количество пунктов, но как это сделать? Было замечено Если котировка в конце содержит JPY то одни расчеты Если котировка содержит в конце USD другие расчеты Ну а если на примере золота CFD то тоже другие расчеты для получения правильного значения количества пунктов Пример если сделка по золоту Buy- покупка цена закрытия минус цена открытия (1670,96-1670,39) по хорошему это 5,7 пунктов Случай с ЕUR/USD покупка 1,32501 закрытие 1,32602 это 10,1 пп Случай с EUR/JPY 123,818 закрытие 124,005 это 18,7 пп
т.е. в столбце M Pips необходимо посчитать количество пунктов? Столбец Trade может принимать значения кроме Byu и Sell? 1 пункт для разных котировок сответственно имеет разные значения?
Совершенно верно, Trade имеет только 2 значения Buy и Sell. 1 пункт для разных котировок с ответственно имеет разные значения. 130,223 1,32405 66,20 Везде будут разные расчеты если просто вычитать и складывать
Можете пояснить эту формулу уже ради интереса =ЕСЛИ(НЕ(И(ЕПУСТО(G2);ЕПУСТО(I2)));ЕСЛИ(C2="Sell";(G2-I2);ЕСЛИ(C2="buy";(I2-G2);0))*ВПР(F2;Ticker;2;ЛОЖЬ);0) откуда это формула знает про CFD, USD и JPY удивительно считает вроде бы правильно, но только после того когда обновляю расчеты не сразу, и еще проблема при удалении или цены открытия или цены закрытия в ответе стоит число с минусом (для этого я делал чтобы проверяло на наличие пустых ячеек)
ошибка действительно была (при удалении или цены открытия или цены закрытия), исправил. Посмотрите в диспетчере имен имя Ticker, диапазон можно поместить на лист, далее обычный ВПР
Исправил, видимо когда выкладывал предыдущий раз прицепил не то файл. Расчёт происходит при условии, что ячейки в столбцах Open и Close содержат значения, если хотябы одна из них пуста - результат=0