2016 - [решено] Подскажите по формуле в EXCEL

Ответить
 • Просмотры: 1
Аватара пользователя
another_user

2016 - [решено] Подскажите по формуле в EXCEL

Сообщение another_user »

Ребят, подскажите как написать формулу или отправьте куда нужно, где есть эксперты по эксель.



Для общего понимания: идет расчет начальной (максимальной) цены контракта с использованием этого их реестра контрактов. Есть две значимые позиции, текущая дата и дата заключения контракта. Нужно, чтобы считался коэффициент для пересчета цен прошлых периодов к текущему уровню цен. Одна ячейка - цена из контракта, следующая за ней ячейка должна содержать формулу, считающую коэффициент исходя из нижеследующего. Если между текущей датой и датой заключения контракта больше 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 и далее этот коэффициент умножить на цену контракта из первой ячейки.



Вот я уже не понимаю ничего. Как сделать, чтобы эксель понял какой месяц в дате понятно, но как сделать, чтобы он пошел в таблицу на другом листе, нашел там эти месяцы и произвел соответствующее исчисление. Поможите, а?
Аватара пользователя
okshef

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение okshef »

another_user, попробуйте изобразить ваш вопрос в файле, как вы его понимаете...

Таблица, на которую вы дали ссылку, легко копируется в Excel.
Аватара пользователя
another_user

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение another_user »

Цитата okshef:



легко копируется в Excel.
2016 - [решено] Подскажите по формуле в EXCEL




Ну, попробуйте, скопируйте)



Лист Microsoft Excel.xlsx




Вот как бы файлик. Сначала идет цена из источника, а ровно в следующей ячейке я хочу, чтобы считался коэффициент и умножался в полностью автоматическом режиме в зависимости от текущей даты и даты заключения контракта. Я склоняюсь к тому, что либо надо писать ну очень длинные формулы, либо это невозможно в принципе. Ваши мысли?
Аватара пользователя
okshef

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение okshef »

Цитата another_user:



Ну, попробуйте, скопируйте)
2016 - [решено] Подскажите по формуле в EXCEL




вы же скопировали Изображение Есть способ проще:
Импорт данных в Excel 2010 из интернета


Очень плохо, что в вашем файле объединение ячеек - это существенно усложняет вычисления. Теперь по логике расчетов.

В ячейке H19 вижу дату заключения контракта, в ячейке K19 - цена за единицу. Как вы видите связь данных первого листа с данными со второго, что должно быть?
Аватара пользователя
another_user

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение another_user »

Цитата okshef:



объединение ячеек - это существенно усложняет вычисления.
2016 - [решено] Подскажите по формуле в EXCEL




Почему? Просто за адресом нужно внимательней последить и все, по моему.




Цитата okshef:



Теперь по логике расчетов.
2016 - [решено] Подскажите по формуле в EXCEL




Вот смотрите, значит...



Ячейка D5 содержит указание на текущую дату. Смотрим источник ценовой информации № 3, где мы с вами видим, что дата заключения контракта 26 января 2015. К37 содержит цену товара, которая указана в контракте. В ячейке N37 в зависимости от текущей даты и даты заключения контракта должен полностью автоматически делаться расчет коэффициента для пересчета цен прошлых периодов к текущему уровню цен по логике, описанной в первом посте. Обратите, кстати, внимание, N37 содержит формулу и считает как мне нужно. Но проблема в том, что эта формула применима только если сейчас декабрь, а контракт заключен в январе. Эту формулу я писал специально под эти месяцы, а я хочу, чтобы формула сама определяла какой месяц сегодня и каким месяцем заключен контракт, а потом шла на лист GKS и автоматически выбирала оттуда данные по формуле (100+(х-100))/100, где х это каждый месяц в периоде между месяцем заключения контракта и текущим месяцем. Я надеюсь вы понимаете. ))



Я все-таки думаю, что Excel способен на это. Разве что мой мозг пока не способен.
Аватара пользователя
okshef

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение okshef »

Цитата another_user:



Если между текущей датой и датой заключения контракта больше 180 дней
2016 - [решено] Подскажите по формуле в EXCEL




а если меньше?

Я так понял, что цена не меняется.



Так?



P.S. Думаю, у вас возникнут вопросы. Буду рад ответить.
Аватара пользователя
another_user

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение another_user »

Цитата okshef:



а если меньше?

Я так понял, что цена не меняется.
2016 - [решено] Подскажите по формуле в EXCEL




Так.




Цитата okshef:



Думаю, у вас возникнут вопросы.
2016 - [решено] Подскажите по формуле в EXCEL




Еще бы! Как вы это сделали? Единственное что надо коэффициент округлять, а то если брать апрель, то он считается 1,036, а должен быть 1,04.
Аватара пользователя
okshef

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение okshef »

Цитата another_user:



а то если брать апрель
2016 - [решено] Подскажите по формуле в EXCEL




поясните. Апреля в задаче нет. Думаю, с
округлением
вы и сами справитесь.





Теперь пояснения к формулам

[spoiler]Я убрал объединение ячеек, уж простите...На листе 2 та же информация, что и на листе GKS, только убраны квартальные промежуточные расчеты. Введены
именованные диапазоны
(так красивее формула получается ): в столбце В диапазону Лист2!$B$6:$B$27 присвоено имя "Месяцы", в столбце С диапазону Лист2!$C$6:$C$27 - "Коэффициенты"В столбце В Лист2 названия месяцев заменены числовыми значениями 1.01.2014, 1.02.2014 и т.д. и применено форматирование "[$-ru-RU]ММММ ГГГГ;@"Теперь к формуле. Пояснения для ячейки Е13



Код:
[/spoiler]

Код: Выделить всё

=ЕСЛИ(РАЗНДАТ(C13;$B$1;"d")>179;D13*(100+СУММПРОИЗВ((Коэффициенты-100)*(Месяцы>ДАТАМЕС(C13;-1))))/100;D13)

РАЗНДАТ(C13;$B$1;"d") - недокументированная функция, но справка по ней
есть
. Одно замечание: вместо "Д", "М", "Г", и т.д. нужно использовать "d', "m", "y", и т.д.

Считает количество дней от текущей даты до даты в ячейке С13 в днях.

Поскольку один из дней входит в диапазон дат, пришлось в условии использовать не 180, а 179

Теперь непосредственно о вычислении

ваше желание:
Цитата:



(100+(х-100))/100, где х это каждый месяц в периоде между...



исполнено в виде

(100+СУММПРОИЗВ((Коэффициенты-100)*(Месяцы>ДАТАМЕС(C13;-1))))/100

(Коэффициенты-100) - вычитает 100 от каждого значение в диапазоне "Коэффициенты[/i]", это понятно. Результат: диапазон уменьшенных на 100 коэффициентов инфляции.

(Месяцы>ДАТАМЕС(C13;-1)) - отсекает месяцы, меньшие даты заключения контракта. Т.к. в диапазоне "Месяцы" месяц начинается с 1-го числа, нужно значение месяца в ячейке С13 уменьшить на 1 месяц, для этого нужна функция "
ДАТАМЕС
". Результат: диапазон логических 0 и 1. 0 - месяц меньше месяца закл. контракта, 1 - больше или равен.

Дальше функция СУММПРОИЗВ суммирует произведения двух диапазонов: уменьшенных коэффициентов и 0 и 1 согласно выбранным месяцам.

Остальное - чистая арифметика.





Надеюсь, понятно объяснил Изображение
Аватара пользователя
another_user

Re: 2016 - [решено] Подскажите по формуле в EXCEL

Сообщение another_user »

Цитата okshef:



Надеюсь, понятно объяснил
2016 - [решено] Подскажите по формуле в EXCEL




Большое человеческое спасибо!
Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»