Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2015, 13:37   #1
riniks17
Форумчанин
 
Регистрация: 15.12.2011
Сообщений: 355
По умолчанию Много вложений в "если...."

Добрый день, уважаемые. Нужен совет. Хочу сделать калькулятор по справочнику. Выбор нормы из него, как бы не проблема. Но каждому виду работ (С1, С2, и тд) соответствует своя формула для расчёта "итого". Было б этих видов работ 3-4, обошёлся бы вложенными "если", но их (видов работ) под 50. Наведите на мысль. например записать как то формулы, соответствующие виду работ, на соседнем листе и потом как-то ссылаться на них? Я с таким не встречался. Можно макрос попытаться, но предвижу большие проблемы с сотрудниками. Поэтому хочется формулами. Надеюсь объяснился понятно. Заранее спасибо.
Вложения
Тип файла: zip Пример.zip (10.7 Кб, 8 просмотров)
riniks17 вне форума Ответить с цитированием
Старый 15.04.2015, 14:26   #2
Czeslaw
Пользователь
 
Регистрация: 08.07.2013
Сообщений: 95
По умолчанию

Код:
=CHOOSE(RIGHT(A2);2*F2/60*E2;0,3*F2/60*(E2+0,2);F4/60*E2;1,3*(F2/60+0,2)*E2/2)
Czeslaw вне форума Ответить с цитированием
Старый 15.04.2015, 15:00   #3
Czeslaw
Пользователь
 
Регистрация: 08.07.2013
Сообщений: 95
По умолчанию

Немного доработал и высылаю пример.
Вложения
Тип файла: rar отделка.rar (11.3 Кб, 10 просмотров)
Czeslaw вне форума Ответить с цитированием
Старый 15.04.2015, 16:35   #4
riniks17
Форумчанин
 
Регистрация: 15.12.2011
Сообщений: 355
По умолчанию

Пару вопросов
1 Что такое 1 в поиске строк (искомое значение)? Где спрятано?
2. Можно ли обойтись без формул массивов?
3. Если есть 50 видов работ и каждый со своей формулой, то и функция "выбор" будет иметь 50 значений? Так же как и 50 вложений в функцию "если"?
riniks17 вне форума Ответить с цитированием
Старый 15.04.2015, 19:08   #5
Czeslaw
Пользователь
 
Регистрация: 08.07.2013
Сообщений: 95
По умолчанию

Без формулы массива можно обойтись, а вот без формул по-моему уразумению нет.
Смотрите, что у меня вышло.
Вложения
Тип файла: rar отделка.rar (11.9 Кб, 10 просмотров)
Czeslaw вне форума Ответить с цитированием
Старый 15.04.2015, 21:13   #6
riniks17
Форумчанин
 
Регистрация: 15.12.2011
Сообщений: 355
По умолчанию

Спасибо. Буду пробовать. Ещё есть такие мысли. Максимально унифицировать формулы, что б осталась две-три общих части, а остальное коэффициентами. Ещё попробую таблицами. Что получится, выложу.
Куда поблагодарить?
riniks17 вне форума Ответить с цитированием
Старый 15.04.2015, 21:35   #7
Czeslaw
Пользователь
 
Регистрация: 08.07.2013
Сообщений: 95
По умолчанию

Благодарить в каком смысле?
Czeslaw вне форума Ответить с цитированием
Старый 15.04.2015, 23:18   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложение
написана функция Calc которая на входе получает формулу, метраж, норму
Код:
Function Calc(exp As Range, m As Range, n As Range) As Double
  Calc = Evaluate(Replace(Replace(Replace(exp, "метраж", m.Value), "норма", n.Value), ",", "."))
End Function
на выходе результат вычисления формулы с указанными метражем и нормой.

и чтобы все работало желательно в формулах на листе Тип не делать ошибок
для С4 было написано
Код:
1,3(норма/60+0,2)*(метраж/2)
а следует писать
Код:
1,3*(норма/60+0,2)*(метраж/2)
Вложения
Тип файла: rar МетражНорма.rar (16.7 Кб, 12 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.04.2015, 11:37   #9
riniks17
Форумчанин
 
Регистрация: 15.12.2011
Сообщений: 355
По умолчанию

Поверил в волшебство.
riniks17 вне форума Ответить с цитированием
Старый 16.04.2015, 12:24   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа функциями "ЕСЛИ", "И" и вывод текстового результата johny_03 Microsoft Office Excel 3 04.08.2014 11:01
Машина Тьюринга: Определите, имеются ли в слове Х две одинаковые буквы, идущие подряд, если слово состоит из букв "C" и "D" Елешечка Помощь студентам 8 06.04.2014 17:19
количество вложений "ЕСЛИ" Spicker Microsoft Office Excel 28 14.08.2012 07:20
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51