![]() |
Подскажите по формуле в EXCEL
Ребят, подскажите как написать формулу или отправьте куда нужно, где есть эксперты по эксель.
Для общего понимания: идет расчет начальной (максимальной) цены контракта с использованием этого их реестра контрактов. Есть две значимые позиции, текущая дата и дата заключения контракта. Нужно, чтобы считался коэффициент для пересчета цен прошлых периодов к текущему уровню цен. Одна ячейка - цена из контракта, следующая за ней ячейка должна содержать формулу, считающую коэффициент исходя из нижеследующего. Если между текущей датой и датой заключения контракта больше 180 дней, то нужно... (и вот тут самое сложное для меня)... нужно чтобы формула определила месяц текущей даты и месяц даты заключения контракта (допустим текущая декабрь и дата заключения контракта - июнь), потом сходила в другой в лист в такую табличку (http://www.gks.ru/bgd/free/b00_24/Is...0/I000030R.HTM), там нашла эти месяцы и сделала (100 + (100,7 октябрь - 100) + (100,6 сентябрь - 100) + (100,4 - 100) + (100,8 - 100) + (100,2 - 100))/100= 1,027 и далее этот коэффициент умножить на цену контракта из первой ячейки. Вот я уже не понимаю ничего. Как сделать, чтобы эксель понял какой месяц в дате понятно, но как сделать, чтобы он пошел в таблицу на другом листе, нашел там эти месяцы и произвел соответствующее исчисление. Поможите, а? |
another_user, попробуйте изобразить ваш вопрос в файле, как вы его понимаете...
Таблица, на которую вы дали ссылку, легко копируется в Excel. |
Вложений: 1
Цитата:
Файл 131730 Вот как бы файлик. Сначала идет цена из источника, а ровно в следующей ячейке я хочу, чтобы считался коэффициент и умножался в полностью автоматическом режиме в зависимости от текущей даты и даты заключения контракта. Я склоняюсь к тому, что либо надо писать ну очень длинные формулы, либо это невозможно в принципе. Ваши мысли? |
Цитата:
Очень плохо, что в вашем файле объединение ячеек - это существенно усложняет вычисления. Теперь по логике расчетов. В ячейке H19 вижу дату заключения контракта, в ячейке K19 - цена за единицу. Как вы видите связь данных первого листа с данными со второго, что должно быть? |
Цитата:
Цитата:
Ячейка D5 содержит указание на текущую дату. Смотрим источник ценовой информации № 3, где мы с вами видим, что дата заключения контракта 26 января 2015. К37 содержит цену товара, которая указана в контракте. В ячейке N37 в зависимости от текущей даты и даты заключения контракта должен полностью автоматически делаться расчет коэффициента для пересчета цен прошлых периодов к текущему уровню цен по логике, описанной в первом посте. Обратите, кстати, внимание, N37 содержит формулу и считает как мне нужно. Но проблема в том, что эта формула применима только если сейчас декабрь, а контракт заключен в январе. Эту формулу я писал специально под эти месяцы, а я хочу, чтобы формула сама определяла какой месяц сегодня и каким месяцем заключен контракт, а потом шла на лист GKS и автоматически выбирала оттуда данные по формуле (100+(х-100))/100, где х это каждый месяц в периоде между месяцем заключения контракта и текущим месяцем. Я надеюсь вы понимаете. )) Я все-таки думаю, что Excel способен на это. Разве что мой мозг пока не способен. |
Вложений: 1
Цитата:
Я так понял, что цена не меняется. Так? P.S. Думаю, у вас возникнут вопросы. Буду рад ответить. |
|
Цитата:
Теперь пояснения к формулам
Код:
=ЕСЛИ(РАЗНДАТ(C13;$B$1;"d")>179;D13*(100+СУММПРОИЗВ((Коэффициенты-100)*(Месяцы>ДАТАМЕС(C13;-1))))/100;D13) Считает количество дней от текущей даты до даты в ячейке С13 в днях. Поскольку один из дней входит в диапазон дат, пришлось в условии использовать не 180, а 179 Теперь непосредственно о вычислении ваше желание: Цитата:
(100+СУММПРОИЗВ((Коэффициенты-100)*(Месяцы>ДАТАМЕС(C13;-1))))/100 (Коэффициенты-100) - вычитает 100 от каждого значение в диапазоне "Коэффициенты", это понятно. Результат: диапазон уменьшенных на 100 коэффициентов инфляции. (Месяцы>ДАТАМЕС(C13;-1)) - отсекает месяцы, меньшие даты заключения контракта. Т.к. в диапазоне "Месяцы" месяц начинается с 1-го числа, нужно значение месяца в ячейке С13 уменьшить на 1 месяц, для этого нужна функция "ДАТАМЕС". Результат: диапазон логических 0 и 1. 0 - месяц меньше месяца закл. контракта, 1 - больше или равен. Дальше функция СУММПРОИЗВ суммирует произведения двух диапазонов: уменьшенных коэффициентов и 0 и 1 согласно выбранным месяцам. Остальное - чистая арифметика. Надеюсь, понятно объяснил :) |
Цитата:
|
Время: 01:52. |
Время: 01:52.
© OSzone.net 2001-