Excel макрос для подбора параметра

Студворк — интернет-сервис помощи студентам

Здравствуйте!
Возможно ли создать макрос, выполняющий подбор значений? Эту операцию надо проделывать многократно, от того ручками долго. Он категорически не хочет, у меня по крайней мере, записывать значение из необходимой ячейки в буфер обмена, а затем вставлять его в искомое значение. Пробовал создать объект (Dim MyDataObj As New DataObject) затем присвоить ему значение (MyDataObj.SetText (H41)), затем вставить его (MyDataObj.PutInClipboard). Но когда в строке Range(«C49»).GoalSeek Goal:=1473, ChangingCell:=Range(«C42») вместо числа вставляю этот объект, получаю ошибку.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub T1()
Range("G41").Select
Selection.Copy
Range("H41").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "1473"
Range("H41").Select
Selection.ClearContents
Range("C49").Select
Range("C49").GoalSeek Goal:=1473, ChangingCell:=Range("C42")
End Sub

Прошу простить, если что не так оформлено, я во всём этом новичок. Заранее благодарю)

Автоматический подбор параметров расчёта

SBK

Дата: Вторник, 19.09.2017, 21:28 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

Мне нужно автоматически подобрать параметр в ячейках (P2;P10) (16), изменяя значения параметра в ячейках (J2;J10) (10) соответственно.
У меня есть программа-макрос подбора параметра в ячейках (G6;G46) (7) при изменении значения параметра в ячейках (D6;D46) (4) соответственно.

[vba]

Код

Sub recount()
    Set tbl = ActiveSheet.[a5].CurrentRegion
    Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count — 1))
    For Each cell In tbl.Cells
        cell.Offset(, 6).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 3)
    Next
End Sub

[/vba]

Эта программа рабочая. Я записал эту программу под свои данные:

[vba]

Код

Sub recount()
    Set tbl = ActiveSheet.[a5].CurrentRegion
    Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count — 1))
    For Each cell In tbl.Cells
        cell.Offset(, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 9)
    Next
End Sub

[/vba]

Но она не желает работать. Debug выделяет область
[vba]

Код

cell.Offset(, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 9)

[/vba]
Неверная ссылка ошибка 1004.
Не могу найти ошибку.
Саму программу могу представить только в зипованном виде, поскольку она «весит» 258 кб. Но если устроит зипованная, я её выложу.

 

Ответить

RAN

Дата: Вторник, 19.09.2017, 22:59 |
Сообщение № 2

Группа: Друзья

Ранг: Экселист

Сообщений: 5645


Если так, как тут, то можно не трудиться.


Быть или не быть, вот в чем загвоздка!

 

Ответить

InExSu

Дата: Вторник, 19.09.2017, 23:55 |
Сообщение № 3

Группа: Друзья

Ранг: Ветеран

Сообщений: 646


Репутация:

96

±

Замечаний:
0% ±


Excel 2010

[vba]

Код

Sub recountWatch()
  Set tbl = ActiveSheet.[a5].CurrentRegion
  Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count — 1))
  Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count — 1)).Select
  Stop
  СтрокоКомпенсатор = -5
  For Each cell In tbl.Cells
    cell.Offset(СтрокоКомпенсатор, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(СтрокоКомпенсатор, 9)
    cell.Offset(СтрокоКомпенсатор, 15).Select
    Stop
    cell.Offset(СтрокоКомпенсатор, 9).Select
  Next
End Sub

[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel

 

Ответить

SBK

Дата: Среда, 20.09.2017, 00:15 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

RAN’y
А что там не так? Я же потому и ищу, чтобы понять, что не так?

Сообщение отредактировал SBKСреда, 20.09.2017, 00:19

 

Ответить

SBK

Дата: Среда, 20.09.2017, 00:18 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

InExSu’y
Это будет работать в exsel 2003?
Я почему спрашиваю? На русском «строкоКомпенсатор». Эта функция есть в 2003?

 

Ответить

InExSu

Дата: Среда, 20.09.2017, 09:58 |
Сообщение № 6

Группа: Друзья

Ранг: Ветеран

Сообщений: 646


Репутация:

96

±

Замечаний:
0% ±


Excel 2010


Не знаю. В Excel будет. Функции нет, это переменная.
Код написан, чтобы вы в процессе отладки увидели, где у Вас кончаются данные …


Разработчик Битрикс24 php, Google Apps Script, VBA Excel

 

Ответить

SBK

Дата: Среда, 20.09.2017, 14:16 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

InExSu,
У меня Ваша программка зависла на той же строке
[vba]

Код

cell.Offset(СтрокоКомпенсатор, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(СтрокоКомпенсатор, 9)

[/vba]
т.е. на выполнении самой операции подбора параметров и то же заявление об ошибке.
С другой стороны, я одну ошибку у себя нашёл в прежнем макросе. Я использовал числовой формат данных, а оказывается нужно было в общем формате считать Кроме того, я заменил [a5] [a6] на [a1] [a2] соответственно. При этом старая программка посчитала первые 20 строк и остановилась, хотя строки не прерывались. Вручную подбор работает в любой строке. Не подскажете почему это может быть?

Сообщение отредактировал SBKСреда, 20.09.2017, 14:26

 

Ответить

Pelena

Дата: Среда, 20.09.2017, 14:23 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Файл с примером не покажете?


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

SBK

Дата: Среда, 20.09.2017, 14:36 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

Pelena,
сам не пойму как, честное слово…

 

Ответить

SBK

Дата: Среда, 20.09.2017, 14:56 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

Pelena
Могу только в зипованном виде. Весит больше допустимого 200 кб.
Если этот вариант устроит, то файл в прикрепке

К сообщению приложен файл:

5235019.rar
(79.8 Kb)

Сообщение отредактировал SBKСреда, 20.09.2017, 15:02

 

Ответить

InExSu

Дата: Среда, 20.09.2017, 14:59 |
Сообщение № 11

Группа: Друзья

Ранг: Ветеран

Сообщений: 646


Репутация:

96

±

Замечаний:
0% ±


Excel 2010


Вы знаете, «что» вы хотите вычислить, но не знаете как.
Мы знаем «как» вычислить, но не знаем «что» Вы вычисляете, как Вы расставили данные.
Ошибка Вам пишет, что кончились данные для GoalSeek.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel

Сообщение отредактировал InExSuСреда, 20.09.2017, 15:00

 

Ответить

SBK

Дата: Среда, 20.09.2017, 15:05 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

Ошибка Вам пишет, что кончились данные для GoalSeek.

Я добавил пример.rar.
Можно ли расширить данные? Таблица расчёта по обеим столбцам сплошная, вручную всё считается. Где может быть «стоп»? Может нужно в исходный файл добавить нижнюю строку расчёта? Как это сделать грамотно?

Сообщение отредактировал SBKСреда, 20.09.2017, 15:06

 

Ответить

Pelena

Дата: Среда, 20.09.2017, 15:22 |
Сообщение № 13

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Может, так
[vba]

Код

Sub recount()
    Set tbl = ActiveSheet.[e2].CurrentRegion
    Set tbl = tbl.Columns(1).Offset(1).Resize(tbl.Rows.Count — 1)
    For Each cell In tbl.Cells
        cell.Offset(, 11).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 5)
    Next
End Sub

[/vba]


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

SBK

Дата: Среда, 20.09.2017, 16:12 |
Сообщение № 14

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

Pelena,
А Вы знаете? Работает. Получается, что ошибка моя была в том, что в квадратных скобках нужно задавать начало массива, а не столбец а, как стандарт. Правильно я понял?

 

Ответить

Pelena

Дата: Среда, 20.09.2017, 17:14 |
Сообщение № 15

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

CurrentRegion — это текущая область. Её можно увидеть, встав в ячейку и нажав Ctrl+* (звёздочка справа на цифровой клавиатуре).
Попробуйте проделать это, встав в A5 или в E2, почувствуйте разницу :)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

rusmir76

Дата: Вторник, 22.02.2022, 16:19 |
Сообщение № 16

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Здравствуйте! Подскажите, а возможно ли задать для подбора не фиксированное значение (как в примере — 1), а разные расположенные например напротив ячейки подбора. Установить в ячейке O7 значение равное S7 Изменяя значение ячейки L7
И так по всем строкам.

Образец прикрепил в файле. Заранее спасибо!

К сообщению приложен файл:

___.xlsx
(13.1 Kb)

 

Ответить

Pelena

Дата: Вторник, 22.02.2022, 17:02 |
Сообщение № 17

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Изменяя значение ячейки L7

ячейка L7 никак не влияет на O7
Если взять, к примеру, M7, то как-то так
[vba]

Код

Sub recount()
    lrow = Cells(Rows.Count, «O»).End(xlUp).Row
    For Each cell In Range(«O7:O» & lrow)
        If cell <> «» Then cell.GoalSeek Goal:=cell.Offset(, 4), ChangingCell:=cell.Offset(, -2)
    Next
End Sub

[/vba]

К сообщению приложен файл:

111.xlsm
(22.5 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Групповой подбор параметров Анализ «что-если» подбор параметра

Групповой подбор параметров – инструмент для побора группы параметров на основе стандартного инструмента Excel анализ “что-если”, подбор параметра.

В стандартном инструменте “подбор параметров” возможно подбирать только одиночное значение для формулы. В групповом подборе реализована возможность подбирать значения для группы формул, последовательно, что значительно ускорят процесс по сравнению с использованием стандартного инструмента Excel

Dim i As Integer
Sheets(«System1»).Select
Range(«B7:ANQ7») = «0»
For i = 2 To 1057
Cells(34, i).GoalSeek Goal:=0.03, ChangingCell:=Cells(7, i)
Next i
Sheets(«Main»).Select

End Sub

Я предположил, что можно сделать, так, но выдает ошибку:
[vba]

Dim i As Integer
Sheets(«System1»).Select
Range(«B7:ANQ7») = «0»
For i = 2 To 1057
Cells(34, i).GoalSeek Goal:=0.03, ChangingCell:=Cells(7, i)
Next i
Sheets(«Main»).Select

End Sub

Я предположил, что можно сделать, так, но выдает ошибку:
[vba]

Dim i As Integer
Sheets(«System1»).Select
Range(«B7:ANQ7») = «0»
For i = 2 To 1057
Cells(34, i).GoalSeek Goal:=0.03, ChangingCell:=Cells(7, i)
Next i
Sheets(«Main»).Select

End Sub

Я предположил, что можно сделать, так, но выдает ошибку:
[vba]

Спасибо! Автор — NiZiM
Дата добавления — 30.08.2018 в 10:45

Источник

12. Подбор параметра

Функция Подбор параметра.

Решение уравнений средствами программы Excel

Задача : Найти решение уравнения x 3 — Зх 2 +х= -1.

1. Присвойте рабочему листу имя Уравнение.

2. Занесите в ячейку A 1 значение 0.

3. Занесите в ячейку B 1 левую часть уравнения, используя в качестве независи­ мой переменной ссылку на ячейку A 1. Соответствующая формула может, напри­ мер, иметь вид = A 1^3-3* A 1^2+ A 1.

4. На вкладке Данные, в группе Работа с данными выберите Анализ «что если» — Подбор параметра.

5. В поле Установить в ячейке укажите В1, в поле Значение задайте -1, в поле Из­меняя значение ячейки укажите А1.

6. Щелкните на кнопке ОК и посмотрите на результат подбора, отображаемый в диалоговом окне Результат подбора параметра. Щелкните на кнопке ОК, чтобы сохранить полученные значения ячеек, участвовавших в операции.

7. Повторите расчет, задавая в ячейке A 1 другие начальные значения, например 0,5 или 2. Совпали ли результаты вычислений? Чем можно объяснить различия?

Мы научились численно решать с помощью программы Excel уравнения, содержащие одно неизвестное и задаваемые формулой. Мы выяснили, что при наличии нескольких корней результат решения уравнения зависит от того, какое число было выбрано в качестве начального приближения.

Составление штатного расписания больницы.

Вы — заведующий больницей. Составьте штатное расписа­ние, то есть определите, сколько сотрудников, на каких должностях и с каким окладом вы должны принять на работу. Общий месячный фонд зарплаты составляет $10.000.

Предположим, что для нормальной работы больницы нужно 5-7 санитарок, 8-10 медсестер, 10-12 врачей, 1 заведующий апте­кой, 3 заведующих отделениями, 1 главный врач, 1 заведующий хозяйством, 1 заведующий больницей.

Предлагается следующая модель решения задачи. За основу берется оклад санитарки, а остальные вычисляются исходя из него с помощью коэффициентов оклада:

Коэффициенты назначаются следующим образом:

медсестра должна получать в 1,5 раза больше санитарки;

врач — в 3 раза больше санитарки;

заведующий отделением — на $30 больше, чем врач;

заведующий аптекой — в 2 раза больше санитарки;

заведующий хозяйством — на $40 больше медсестры;

главный врач — в 4 раза больше санитарки;

заведующий больницей — на $20 больше главного врача.

Оформите таблицу, используя следующие столбцы: Должность, Количество сотрудников, Коэффициент A , Коэффициент B , Оклад, Итого.

1. В первой строке – название таблицы.

2. Во второй строке – название столбцов таблицы.

3. В ячейках А3:А10 введите названия должностей – от санитарки до главного врача. В ячейках В3:В10 – количество сотрудников по верхнему пределу, заданному в условии задачи. В ячейке С3 – 1, в ячейках C 4: C 10 – во сколько раз данный оклад больше оклада санитарки. В ячейках D 3: D 10 – на сколько больше (обратите внимание, что размер оклада нужно выразить относительно оклада санитарки). Ячейку Е3 оставьте пустой – там будет формироваться величина оклада. В ячейках Е4:Е10 – введите формулу для вычисления оклада (см. в условии задачи). В столбце F подсчитайте сумму окладов по должностям и итоговую по всей по больнице.

При решении задачи используйте сервисную функцию Excel Подбор параметра : Данные– (Работа с данными) Анализ «Что если» (см. рисунок Подбор параметра).

В поле Установить в ячейке ввести адрес ячейки, где вы­числяется общая месячная зарплата всех сотрудников больницы. В поле Значение ввести предельное значение месячного фонда зарплаты. В поле Изменяя значение ячейки ввести адрес ячейки, где находится оклад санитарки. После нажатия ОК произойдет ав­томатический подбор значения оклада санитарки таким образом, чтобы общий месячный фонд зарплаты составил $10.000.

4. Рассчитайте оклады для нескольких вариантов штата, из­меняя количество штатных единиц в соответствии с заданными условиями.

Для этого несколько раз подряд придется выполнять рутин­ные действия по вызову команды Подбор параметра и заполне­нию всех полей ее диалогового окна.

Создание простого макроса и кнопки.

Для упрощения работы с предыдущим заданием создадим простейший макрос — программу на языке VBA ( VisualBasicforApplication ), встроенном в офисные программы. Причем сделаем это, не зная пока самого языка. В этом нам поможет MacroRecorder — транслятор, перево­ дящий на язык VBA действия пользователя с момента запуска MacroRecorder до окончания записи макроса.

Для активизации MacroRecorder выбираем команду Вид – Макросы – Запись макроса . В появившемся диалоговом окне Запись макроса (см. рисунок) задаем имя макроса (« Staff ») и описание макро­са (не обязательно). В поле Сохранить в: оставляем опцию по умолчанию Эта книга (тогда созданный макрос сохранится на но­вом листе модуля в активной рабочей книге).

После нажатия OK на экране появляется кнопка Остановить запись в левом нижнем углу MSExcel . Теперь все ваши действия над ячейками будут записываться.

В данном случае действия будут простые. Вызовем сервис­ ную функцию Подбор параметра, выполним описанные ранее дей­ствия по расчету штатного расписания и остановим запись макроса.

Чтобы посмотреть, какая же все-таки VBA — программа «соз­дана» нами, выполним команду Вид — Макросы — Макросы. В появившемся диалоговом окне выберем макрос с именем « Staff » и нажмем кнопку Изменить. Откроется главное окно редактора VBA с текстом записанного макроса, например:

‘ Штатное расписание таблицы

Range(«F11»).GoalSeek Goal:=10000, ChangingCell:=Range(«E3»)

Именно эта процедура и выполняется, если в диалоговом ок­ не Макросы нажать кнопку Выполнить. Рассчитываются оклады для заданного заранее нового количества штатных единиц.

Для еще большей оптимизации действий по расчету штатно­го расписания разместим на листе Кнопку, при нажатии на которую будут производиться нужные действия.

Кнопка является одним из элементов управления листа, соз­ даваемых с помощью панели инструментов Формы. Обычно этой панели нет на экране, поэтому выполняем команду Файл | Параметры | Настройка ленты| Все команды. На экран выводится панель инструментов Всех команд, находим название Кнопка, затем нажимаем на Добавить >> (данная функция уже есть в ранее созданной вкладке). Выбираем на ней щелчком мыши форму Кнопка, при этом указатель мыши превращается в тонкий крестик. Щелкаем им по листу. На нем появляется кнопка с именем Кнопка1 и одновременно открывается диалоговое окно На­значение макроса объекту. В поле Имя макроса выбираем имя нашего макроса « Staff ».

Теперь указанная выше процедура расчета окладов будет выполняться простым нажатием кнопки.

Источник

Excel макрос для подбора параметра

Добрый вечер.
Вообщем тут такая проблемака. Нужно сделать макрос, я не прошу сделать его за меня, а хотя бы дать понять, как что и куда.
Красная клетка — число которое будет заданно изначально в условии мы его не трогаем. К примеру 75.
Жёлтая клетка — число которое будем мы подставлять в ручную. В зависимости от этого числа идёт сам расчёт всех зелёных клеток. Так как в зелёных клетках сами формулы, мы их не изменяем.
В последней синей клетке конечное число расчёта и оно должно совпасть с данным в условии числом.

Исходя из всего написанного выше, нужно сделать так что бы это число ( в жёлтой клетке «9» ), подбиралось само что бы число в синей совпадало с заданным(красным «75»)

П.С. Я начинающий поэтому нечего почти не умею надеюсь на Вас.
П.СС. Я не прошу сделать его за меня, а хотя бы дать понять, как что и куда.

Добрый вечер.
Вообщем тут такая проблемака. Нужно сделать макрос, я не прошу сделать его за меня, а хотя бы дать понять, как что и куда.
Красная клетка — число которое будет заданно изначально в условии мы его не трогаем. К примеру 75.
Жёлтая клетка — число которое будем мы подставлять в ручную. В зависимости от этого числа идёт сам расчёт всех зелёных клеток. Так как в зелёных клетках сами формулы, мы их не изменяем.
В последней синей клетке конечное число расчёта и оно должно совпасть с данным в условии числом.

Исходя из всего написанного выше, нужно сделать так что бы это число ( в жёлтой клетке «9» ), подбиралось само что бы число в синей совпадало с заданным(красным «75»)

П.С. Я начинающий поэтому нечего почти не умею надеюсь на Вас.
П.СС. Я не прошу сделать его за меня, а хотя бы дать понять, как что и куда. MaxsimС

Сообщение Добрый вечер.
Вообщем тут такая проблемака. Нужно сделать макрос, я не прошу сделать его за меня, а хотя бы дать понять, как что и куда.
Красная клетка — число которое будет заданно изначально в условии мы его не трогаем. К примеру 75.
Жёлтая клетка — число которое будем мы подставлять в ручную. В зависимости от этого числа идёт сам расчёт всех зелёных клеток. Так как в зелёных клетках сами формулы, мы их не изменяем.
В последней синей клетке конечное число расчёта и оно должно совпасть с данным в условии числом.

Исходя из всего написанного выше, нужно сделать так что бы это число ( в жёлтой клетке «9» ), подбиралось само что бы число в синей совпадало с заданным(красным «75»)

П.С. Я начинающий поэтому нечего почти не умею надеюсь на Вас.
П.СС. Я не прошу сделать его за меня, а хотя бы дать понять, как что и куда. Автор — MaxsimС
Дата добавления — 03.11.2014 в 23:16

Источник

Лабораторная работа №14. Процедура Подбор параметра

Данная процедура относится к технологиям анализа целевой функции или технологиям «How can – анализа». Подбор параметра – это способ поиска определенного значения ячейки путем изменения значения в другой ячейке. При этом значение в ячейке изменяется до тех пор, пока формула, зависящая от этой ячейки, не вернет требуемый результат.

Чтобы воспользоваться процедурой Подбор параметра, необходимо выполнить последовательность действий:

1. Выберите команду Подбор параметра в меню Данные/Анализ «Что-если».

2. В поле Установить в ячейке введите ссылку на ячейку, содержащую необходимую формулу.

3. Введите искомый результат в поле Значение.

4. В поле Изменяя значение ячейки введите ссылку на ячейку, значение которой нужно подобрать. Формула в ячейке, указанной в поле Установить в ячейке должна ссылаться на эту ячейку.

5. Нажмите кнопку OK.

Задание 1.

Вас просят дать в долг 10000 рублей, обещая вернуть через год – 2000, через 2 – 4000, через 3 – 7000. При какой годовой процентной ставке эта сделка имеет смысл?

В ячейку В7 (рис.) вводится формула для расчета чистого приведенного значения вклада с функцией ЧПС(ставка, 1-е значение, 2-е значение,…), аргумент которой «ставка» – ссылка на ячейку годовой учетной ставки (она пока пустая). Затем вызывается Подбор параметра.

Рис. Процедура Подбор ____________параметра

Лабораторная работа №15.
Совместная работа в приложениях MS Office.

Задание 1

Используя возможности текстового редактора WORD и табличного процессора EXCEL и указания к работе, создайте документ по приведенному образцу:

1. Находясь на странице документа Word, установить все поля страницы по 2 см.

2. Набрать текст, соблюдая точный повтор оригинала, до абзаца «Состав и количество затрат на питание представлен на диаграмме:» включительно.

3. Для создания диаграммы перейти в EXCEL и создать таблицу следующего содержания:

4. 4. Выполнить необходимые расчеты в столбцах «Стоимость продукта на одного человека» и «Стоимость продукта на всю группу», а также в ячейке «Итоговая стоимость». В ячейках, содержащих денежные расчеты, применить денежный формат с двумя знаками после запятой.

5. Построить круговую диаграмму, отражающую процент денежных затрат каждого продукта в составе общих затрат на питание всей группы.

6. Построить гистограмму, отражающую количество денежных затрат по каждому продукту с подписями данных.

7. Вставить построенные диаграммы в документ WORD.

8. Закончить создание документа по образцу.

Лабораторная работа №16.
Элементы автоматизации с помощью макросов

С помощью макросов можно автоматизировать многократно повторяющиеся действия. Макрос – это последовательность команд, которые написаны на VBA и хранятся в стандартном модуле среды разработки приложений. Эту последовательность можно не писать вручную, а воспользоваться макрорекордером, который преобразует действия пользователя в макрокоманды.

Задача 1. Записать макрос

Запишем макрос, который создает новую рабочую книгу, состоящую из единственного рабочего листа Отчет с шаблоном отчетной таблицы, в которую остается только внести числовые данные.

1. Добавить вкладку Разработчик на ленту команд: М еню MS Office/Параметры Excel/Показывать вкладку Разработчик на ленте команд – поставить флажок. Для активизации макрорекордера выбрать команду Разработчик/Запись макроса. Появится диалоговое окно Запись макроса, которое позволит задать параметры макроса.

2. Задать имя макроса: СоздатьОтчет. Сохранить в – Эта книга Задать описание: Создание рабочей книги с отчетной таблицей. Нажмите ОК. Теперь все производимые действия будут записываться до тех пор, пока не будет выбрана команда Разработчик/Остановить запись.

3. Последовательность действий, которую запишет макрорекордер:

a. Меню MS Office/Параметры Excel/Основные/раздел «При создании новых книг»: Число листов – 1/ОК.

b. Меню MS Office/Создать/Новая книга/кнопка Создать.

c. Переименовать ярлык Лист 1 в Отчет.

d. Выделить ячейку А2 и ввести в нее Отдел закупок.

e. Выделить ячейку А3 и ввести в нее Отдел рекламы.

f. Выделить ячейку А4 и ввести в нее Итого.

g. Двойным щелчком по границе столбцов А и В подберите ширину столбца А.

h. Выделить ячейку В1 и ввести в нее Расходы.

i. В ячейку В4 ввести формулу: =СУММ(В2:В3).

j. Выделить диапазон А1:В4, на вкладке Главная в разделе Стиль ячеек выбрать любые стили (можно поочередно применить несколько, например «Хороший» и «Примечание»). Когда таблица примет нужный вид – остановите запись макроса: Разработчик/Остановить запись.

4. Для выполнения только что записанной процедуры выберите команду Разработчик/Макросы, отобразится диалоговое окно Макросы. В нем выберите имя нашего макроса и нажмите кнопку Выполнить. Если нажать кнопку Изменить, то на экране отобразится окно редактора VBA с активизированным стандартным модулем, в котором будет код только что записанного макроса. Ничего менять не будем, закрываем окно модуля.

Если все выполнено верно, то после выполнения команды Выполнить будет создана еще одна рабочая книга с одним листом, названным «Отчет», на котором буде размещена заданная таблица. Введите данные в столбец В (например В2 — 1000 и В3 — 1200). Сумма будет подсчитана автоматически.

Макрос можно назначить кнопке, созданной с помощью панели инструментов «Элементы управления формы». Для этого выполним последовательность действий:

1) Разработчик/Вставить/ Элементы управления формы.

2) Выбрать левой кнопкой мыши инструмент «Кнопка» (указатель мыши принимает вид тонкого креста). Очертить мышкой, нажимая ее левую кнопку, контур будущей кнопки.

3) В окне Назначить макрос объекту выбрать имя нашего макроса и нажать ОК.

4) Поместите указатель мыши в центр кнопки и дважды щелкните левой кнопкой.

5) Сотрите имя «Кнопка 1» и введите имя кнопки «СоздатьОтчет», аналогичное имени макроса.

6) Проверьте работу макроса нажатием на созданную кнопку.

Задача 2.

Выполните создание следующих макросов:

1) макроса, выполняющего добавление в рабочую книгу листа;

2) макроса, вставляющего диаграмму (гистограмму) для любого ряда данных;

3) макроса, который выполняет построение графика функции .

Назначьте их кнопкам и проверьте работу макросов.

Лабораторная работа №17.
Анализ инвестиционных проектов средствами Excel

Инвестиционный процесс – это временная последовательность взаимосвязанных инвестиций (вложений денег), доходы от которых также растянуты во времени. Период, в течение которого инвестиции будут приносить отдачу, определяет продолжительность проекта с момента его начала и называется жизненным циклом инвестиции.

Инвестиционный процесс характеризуется двусторонним потоком платежей, где отрицательные члены потока являются вложениями денежных средств в инвестиционный проект, а положительные члены – доходами от инвестиций.

На оси времен инвестиционный проект может быть изображен двусторонней последовательностью платежей: отрицательные ординаты (вниз) – отток, положительные (вверх) – приток. При табличном задании притоку соответствует временной ряд платежей со знаком плюс и со знаком минус – оттоку. В наиболее стандартной ситуации денежный поток развивается таким образом, что инвестиции или отток капитала

предшествуют поступлениям или его притоку.

Рис. Пример потоков инвестиционного проекта

Критерии оценки эффективности инвестиционных проектов

Базой для расчета показателей эффективности являются так называемые чистые денежные потоки (Net Cash-Flow, NCF), включающие в себя выручку от реализации, текущие и инвестиционные затраты, прирост потребности в оборотном капитале и налоговые платежи. Название «чистые потоки» говорит о том, что потоки не учитывают схему финансирования – вложение собственных средств и привлечение кредитных ресурсов. Без этого вложения денежный поток проекта будет, естественно, получаться отрицательным на начальном этапе и накопленные денежные средства будут выглядеть так, как это показано на рисунке.

Рис. Чистые и дисконтированные денежные потоки

На этом графике инвестора интересует несколько значений. Во-первых, это срок окупаемости проекта. Такой срок определяется по времени, требующемуся для того, чтобы суммарные чистые доходы проекта сравнялись с его затратами. На графике это точка, в которой NCF нарастающим итогом выйдет на положительные значения.

Однако ни один инвестор не согласится расстаться с сегодняшними деньгами в пользу будущих, достаточно отдаленных доходов, если эти доходы будут лишь покрывать инвестиции. Поэтому в оценке эффективности проекта всегда используются дисконтированные денежные потоки, в которых NCF каждого года уменьшается на величину ставки дисконтирования по формуле:

где i – номер года проекта, а d – ставка дисконтирования. То есть будущие денежные потоки «обесцениваются» для инвестора с годовыми темпами, равными ставке дисконтирования.

Основными показателями эффективности инвестиций являются:

1) срок окупаемости – Ток;

2) чистый приведенный доход – NPV;

3) внутренняя норма доходности – IRR;

4) индекс прибыльности (рентабельности) – PI.

Эффективность проекта оценивается через срок его окупаемости, то есть через определение периода времени, необходимого для покрытия средств, первоначально инвестированных в проект.

Правило срока окупаемости (правило возврата): инвестиционный проект может быть принят в том случае, если период его окупаемости меньше или равняется сроку реализации инвестиционного проекта.

В нашем примере по графику можно определить, что в 2011 году (то есть на третий год проекта) исходные затраты будут полностью покрыты. Учитывая, что длительность проекта 5 лет, по этому показателю он может быть принят.

Чистый приведенный доход (чистая приведенная стоимость) – NPV

Инвестиции оправдают себя только в том случае, если принесут новые ценности для инвестора. Чистая приведенная стоимость – это разность между рыночной стоимостью проекта и затратами на его реализацию. В EXCEL существует специальная функция, выполняющая операцию расчета NPV – ЧПС. Аргументы этой функции – значение процентной ставки за период и значения денежных потоков каждого периода. Применение функции может идти несколькими способами. Наиболее предпочтительно в качестве аргументов брать только поступления, а начальные вложения добавлять к рассчитанной приведенной стоимости поступлений. Разумеется, вложения должны быть отражены со знаком «плюс».

Основное правило NPV: инвестиционный проект следует рассматривать, если величина NPV – положительная. В случае отрицательного и нулевого значений проект должен быть отклонен.

В нашем примере NPV= $795,44. Значит, по этому показателю проект также можно будет принять.

Внутренняя норма доходности

Это ставка дисконтирования, приравнивающая сумму приведенных доходов от инвестиционного проекта к величие инвестиций, то есть вложения окупаются, но не приносят прибыль.

В EXCEL существует функция ВСД, которая позволяет вычислить IRR.

Основное правило IRR: если внутренняя норма доходности превышает запланированную доходность или доходность от альтернативных вложений, то проект стоит принять. Если наоборот – проект стоит отклонить.

В нашем примере IRR=30%, следовательно, по данному показателю проект тоже стоит принять.

Это отношение приведенной стоимости будущих денежных потоков от реализации инвестиционного проекта к приведенной стоимости первоначальных инвестиций. Его следует понимать, как дополнительную ценность, созданную на каждый вложенный рубль. При положительном значении NPV PI>1, при NPV

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник

Adblock
detector

Формулировка задачи:

Есть три ячейки: параметр, функционал, зависящий от параметра, и значение. Необходимо написать пользовательскую функцию, аргументами которой являются эти 3 ячейки. Функция должна возвращать значение параметра, при котором функционал достигает значения. При этом сам параметр не изменяется. Я написала так:

Но не работает. Не понимаю, как работать с Range и как вызывать функцию.
Плиз, хелп!

Код к задаче: «Функция на подбор параметра»

textual

a = func.GoalSeek(val, par)

Полезно ли:

7   голосов , оценка 4.143 из 5

Понравилась статья? Поделить с друзьями:
  • Excel макрос для переноса текста
  • Excel макрос для переключателя
  • Excel макрос для очистки ячеек
  • Excel макрос для очистки стилей
  • Excel макрос для обновления сводной таблицы