0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 43
1

При достижение определенного значения оно вычиталось из ячейки и счет продолжался

25.01.2016, 00:46. Показов 1165. Ответов 7
Метки нет (Все метки)

Добрый вечер!
Не могу найти выход из ситуации, надеюсь на вашу помощь.
Б1=80
Есть столбец значений от -50 до бесконечности, каждый шаг прибавляется значение превосходящее Б2
как сделать так что бы при достижение Б1 оно вычиталось из ячейки и счет продолжался, то есть:
А Б
1 -50 80
2 -30 20
3 -10
4 10
5 30
6 50
7 70
8 10
9 30
и т.д.
мной было выбрано решение
Код
=ЕСЛИ (А1<Б1;А1+Б2; А1-Б1)
, но проблема этого решения в том что оно циклично при выполнении условия вычитает Б1 как сделать так чтобы условие выполнялось один раз.

P.S Заранее благодарю .
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2016, 00:46
Ответы с готовыми решениями:

Очистить ячейки определенного цвета; выделить строку при вводе значения в ячейку
Вопрос просто. Можно ли создать кнопку, формулу - очистить определенные ячейки(желтые например или...

Как задать цвет ячейки в зависимости от значения из определённого диапазона?
Как задать цвет ячейки в зависимости от значения из определённого диапазона? есть сетка из...

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

Перенос значения в DBEdit3 при выборе определенного значения в DBLookupComboBox1
Доброго вам времени суток. Имеется вот такой вопросик.... У меня есть таблица Предприятия с такими...

7
112 / 20 / 19
Регистрация: 25.01.2016
Сообщений: 37
25.01.2016, 05:10 2
Можно воспользоваться функцией "СЧЁТЕСЛИ" для того, чтобы узнать сколько раз значение А превышало B1.
Итоговая формула будет такой:
Код
=ЕСЛИ(A1<$B$1;A1+$B$2;ЕСЛИ(СЧЁТЕСЛИ($A$1:A1;">"&($B$1-$B$2))>2;A1+$B$2;A1-$B$1))
При повторном превышении B1 функция увидит, что превышение уже было ранее, и будет выполнять только суммирование.
0
2627 / 1327 / 255
Регистрация: 25.10.2010
Сообщений: 2,194
25.01.2016, 08:02 3
Вариант
Код
=A1+$B$2-ЕСЛИ(A1+$B$2>$B$1;$B$1)
или немного короче
Код
=A1+$B$2-$B$1*(A1+$B$2>$B$1)
0
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 43
25.01.2016, 17:00  [ТС] 4
NatalySky , могли бы чуть подробнее расписать формулу Счетесли, не могу понять как работает
0
112 / 20 / 19
Регистрация: 25.01.2016
Сообщений: 37
26.01.2016, 01:50 5
Формулу немного упростила:
Код
=ЕСЛИ(A1<$B$1;A1+$B$2;ЕСЛИ(СЧЁТЕСЛИ($A$1:A1;">"&($B$1))>1;A1+$B$2;A1-$B$1))
Вам нужно узнать, было ли раньше превышение значения или нет. Если не было, то будет вычитание, если было, то далее будет только суммирование.
У функции "СЧЁТЕСЛИ" следующий синтаксис: СЧЁТЕСЛИ(диапазон;критерий). Она опрашивает заданный диапазон ячеек и ищет количество ячеек, удовлетворяющих условию (критерию). Результатом является количество ячеек, удовлетворяющих условию.
Диапазоном у Вас выступают ячейки от А1 до текущей ячейки А.
Критерием будет превышение ячейкой А значения B1 хотя бы 1 раз (90>80). Знак амперсанда (&) объединяет оператор сравнения ">" и значение в ячейке B1, в итоге получается критерий.
Пока превышения не было, СЧЁТЕСЛИ будет равно 0 и условие будет ложно. После первого и последующих превышений СЧЁТЕСЛИ будет >1, значит условие будет верно и будет производиться только сложение.
0
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 43
27.01.2016, 00:59  [ТС] 6
что я делаю не правильно? оно все равно циклично(
Код
=ЕСЛИ(R[-1]C+RC[-1]<R3C2;R[-1]C+RC[-1];ЕСЛИ(СЧЁТЕСЛИ(R2C7:R[-1]C;">"&(R3C2))>1;R[-1]C+RC[-1];R[-1]C+RC[-1]-R3C2))
0
112 / 20 / 19
Регистрация: 25.01.2016
Сообщений: 37
27.01.2016, 01:54 7
Лучший ответ Сообщение было отмечено DoK64 как решение

Решение

В той формуле, что я Вам приводила выше, выводилось значение 90 перед первым вычитанием ("50 70 90 10"). А Вы выводите так: "50 70 10". При таком выводе значение в ячейке А не превышает 80 ни разу, вот у Вас и получилось цикличное вычитание, так как СЧЁТЕСЛИ все время равно 0.
В таком случае нужно просто в СЧЁТЕСЛИ в качестве критерия брать не значение в ячейке B1=80, а разницу B1-B2=80-20=60, тогда все будет считаться как надо
Итоговая формула:
Код
=ЕСЛИ(R[-1]C+RC[-1]<R3C2;R[-1]C+RC[-1];ЕСЛИ(СЧЁТЕСЛИ(R2C7:R[-1]C;">"&(R3C2-RC[-1]))>1;R[-1]C+RC[-1];R[-1]C+RC[-1]-R3C2))
0
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 43
27.01.2016, 01:59  [ТС] 8
NatalySky,Спасибо большое Вам За помощь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2016, 01:59

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вывод определенного значения, при выборе другого значения из списка
Где-то это уже было, но не смог найти. Подскажите, пожалуйста, формулу, для решения такой задачи:...

При выборе определённого значения в одном из ComboBox-ов автоматически убирать лишние значения в других
Здравствуйте, подскажите как при выборе определённого значения в одном из combobox автоматически...

При запросе с PHP к БД вывести данные в необходимые ячейки определенного экселевского файла
Всем привет. ПОМОГИТЕ ПЛИЗ. Мне нужно при запросе с php к базе данных вывести данные в необходимые...

Проблема с функцией "если", Как подставлять значения с ячейки если оно больше 0
Добрый день! Нужна помощь для чайника. В столбце I при отрицательных значениях ячеек D4 и G4 -...

Dbcombobox при выборе значения из списка оно не выбирается
Доброго времени суток! Такая вот проблема: В dbcombobox заполнены значения, при нажатии эти...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.