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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2012, 17:25   #1
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
Лампочка автоматизировать функцию расчета

Код:
=IF(H6<0,02;28,5;IF(AND(H6>0,02;H6<0,04);28,5+1,25;IF(AND(H6>0,04;H6<0,06);28,5+1,25+1,25;IF(AND(H6>0,06;H6<0,08);28,5+1,25+1,25+1,25;IF(AND(H6>0,08;H6<0,1);28,5+1,25+1,25+1,25+1,25;28,5+1,25+1,25+1,25+1,25+1,25))))
если учесть, что в поле H6 хранятся данные ввида 0,014;0,025;0,044;0,72 и т.п. очень разные. Это поле граммы.
Надо исчислять за каждые 20 грамм, свыше 0,20 к сумме 28,5 рублей прибавлять 1,25 рублей.

Как это можно осуществить.. формулу набрасал быстро для первичных данных, таблица будет с гораздо большим количеством данных.
SovereignSun вне форума Ответить с цитированием
Старый 22.05.2012, 18:45   #2
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Не совсем понятно как считать.
Если в H6 241 грамм (200+2*20+1) то получим 31 рубль (28,5+2*1,25) или 32,25 рубля (28,5+3*1,25)?

Для первого варианта:
Код:
=IF(H6>0,2;28,5+INT((H6-0,2)/0,02)*1,25;28,5)
Код:
=ЕСЛИ(H6>0,2;28,5+ЦЕЛОЕ((H6-0,2)/0,02)*1,25;28,5)
Для второго варианта:
Код:
=IF(E8>0,2;28,5+CEILING((H6-0,2)/0,02;1)*1,25;28,5)
Код:
=ЕСЛИ(E8>0,2;28,5+ОКРВВЕРХ((H6-0,2)/0,02;1)*1,25;28,5)

Последний раз редактировалось ZORRO2005; 22.05.2012 в 19:09.
ZORRO2005 вне форума Ответить с цитированием
Старый 22.05.2012, 19:04   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
=28,5+(H6>0,02)*ЦЕЛОЕ((H6-0,02)/0,02)*1,25
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.05.2012, 11:06   #4
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Не одна из функций не помогла. данные везде одинаковые.
за пример взял данные 0,014; 0,024; 0,38; 0,66; 0,78; 0,92
Во всех случаях 28,5 выдает.

Цитата:
Не совсем понятно как считать.
Если в H6 241 грамм (200+2*20+1) то получим 31 рубль (28,5+2*1,25) или 32,25 рубля (28,5+3*1,25)?
если число меньше или равно 0,020 тогда 28,5 стоимость, иначе выше за каждые +0,020 (целые/нецелые) прибавить 1,25 к стоимости. Какие еще варианты можете предложить? Если не затрудняет.
SovereignSun вне форума Ответить с цитированием
Старый 23.05.2012, 11:28   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

как говорят в Одессе: 241 грамм и 0.241 кг - это две большие разницы. для Вашего ума - не проблема, для компьютера - пропасть, данные различаются в 1000 раз.
Вам показали решение... однако...
Вложения
Тип файла: rar КогдаНичегоНеРаботает.rar (3.3 Кб, 11 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.05.2012, 11:32   #6
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от SovereignSun Посмотреть сообщение
Какие еще варианты можете предложить?
Так надо?
Код:
=INT(H6/0.02)*1.25+28.5
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 23.05.2012, 11:58   #7
SovereignSun
Форумчанин
 
Регистрация: 22.11.2011
Сообщений: 127
По умолчанию

Цитата:
Так надо?
Код:
Код:
=INT(H6/0.02)*1.25+28.5
Спасибо эта формула решила все проблемы.
SovereignSun вне форума Ответить с цитированием
Старый 23.05.2012, 17:28   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

напишите рядом с моей формулой формулу Сергея. напишите в Н6 0.02
...тщательно изучите результаты вычислений формул...
и сколько там должно было получиться если посчитать на калькуляторе, без формул и компьютеров?
Ваша стартовая формула =IF(H6<0,02;28,5;IF(AND(H6>0,02;H6< 0,04);28,5+1,25... не дает ответ на этот вопрос, при Н6=0.02 Вы не получите ни 28.5 ни 29.75
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.05.2012, 17:40   #9
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Да Игорь, это:
Цитата:
Сообщение от SovereignSun Посмотреть сообщение
...если число меньше или равно 0,020...
я не увидел

Так вроде работает:
Код:
=INT(H6/0.02)*(H6<>0.02)*1.25+28.5
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 23.05.2012, 18:18   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

там выше есть что почитать:
Цитата:
Надо исчислять за каждые 20 грамм, свыше 0,20
Код:
=max(;INT((H6-0.02)/0.02))*1.25+28.5
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автоматизировать копирование scals Microsoft Office Excel 4 17.05.2010 16:01
определить функцию для расчета периметра треугольника Diplihe Microsoft Office Word 5 29.04.2010 05:21
Помогите автоматизировать PVAOD Microsoft Office Excel 14 07.12.2009 01:24
автоматизировать операцию Lakdi Microsoft Office Excel 1 29.09.2009 04:53
Как автоматизировать функцию? MilanAC Помощь студентам 2 13.08.2009 15:11