0

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

В "Границы значений" являются: < 500,> = 500 < 750,> 750 < = 850 и> 850

"стартовые позиции" являются "Базовый", "Стандарт", "Стандарт +", и «Платиновый»,

значение границы затем применяется и «текущая позиция», выводимая,

например, человек, начинающийся с «Basic», достигает 600, а затем переходит к «стандарту», ​​или кто-то из «Platinum» получает 700, поэтому возвращается к «Standard +» и т. д. и т. д., я пробовал это с вложенным IF безрезультатно.

Редактировать: похоже, решение выходит за рамки формулы, нужна ли мне VBA для решения этой проблемы?

+1

не это то же самое, ваш последний вопрос? –

+0

Возможный дубликат [Вложенное выражение IF] (http://stackoverflow.com/questions/19911872/nested-if-statement) –

+0

Да, я переформулировал это, чтобы сделать его более понятным – Steve

ответ

0

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

=IF(AND(H4="Basic",G17<450),"Basic",IF(AND(H4="Basic",G17>=450),"Standard",IF(AND(H4="Standard",G17<450),"Basic",IF(AND(H4="Standard",G17>449,G17<700),"Standard",IF(AND(H4="Standard",G17>=700),"Standard+",IF(AND(H4="Standard+",G17>699,G17<800),"Standard+",IF(AND(H4="Standard+",G17<700),"Standard",IF(AND(H4="Standard+",G17>=800),"Platinum",IF(AND(H4="Platinum",G17<800),"Standard+","Platinum"))))))))) 
0

Без() таблицы ВПР:

= IF (A1 < 500, "Базовый", ЕСЛИ (И (А1> = 500, A1 < 750), "Стандарт", ЕСЛИ (И (А1> = 750, A1 00), "Стандарт +", "Платиновый")))

Примечание:

В VBA, то И синтаксис немного отличается.

+0

Спасибо за это, я забыл сказать, что система только один шаг в момент изменения, поэтому в зависимости от исходного положения указанные границы приводят только к одному шагу вверх или вниз, например кто-то из Platinum, который получает 400, затем перейдет к «Standard +», а не «Basic», как я могу получить эту функциональность в формуле – Steve

+0

вышеописанные работы по одному условию, но, как я сказал выше, мне нужно иметь возможность применить один шаг двигаться в разные стартовые позиции, любые мысли? – Steve

+0

Я могу решить это, но для этого потребуется столбец «помощник». Ты в порядке. с этим?? –

1

Если вам удобно иметь таблицу с диапазонами где-то, это сработает для вас.

Сотовый F1 содержит формулу (в виде текста), которая используется в E1. Затем вы можете скопировать-вставить вниз.

enter image description here

0

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

В таком случае, и с первым показателем в D1, и второй показатель в Е1, следующая формула будет, по-моему, выход текущая позиция:

= ВЫБРАТЬ (MATCH (D1, {0; 500; 750; 850}) + SIGN ( MATCH (E1, {0; 500; 750; 850}) - MATCH ( D1, {0; 500; 750; 850})), "Basic" «Стандарт», «Стандарт +», «Платина»)

+0

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

+0

Теперь вы включили еще один параметр, который вы не предоставили в своем первоначальном сообщении. Если вы не можете адаптировать одно из предлагаемых решений к своей проблеме, вам нужно будет сесть и подумать о том, как вы можете полностью объяснить свою проблему. Где ввод данных? Как мы узнаем, когда прошло 14 дней? Другими словами, как вы создали свой рабочий лист? И как вы хотите, чтобы результаты отображались. Затем перечитайте сообщение и убедитесь, что вы предоставили все необходимое с ясностью; а также информацию о том, что вы пробовали; какие результаты вы получили; и какие результаты вы ожидали. –

0

ОК ... Поместите последовательность значений в столбец А.В B1 входят:

= IF (A1 < 500,0, ЕСЛИ (И (А1> = 500, A1 < 750), 1, ЕСЛИ (И (А1> = 750, A1 00), 2,3))) и скопировать вниз

это будет генерировать код 0 через 3 представляют четыре уровня

в С1 входят:

= В1

в C2 входят:

= IF (ABS (B1-B2)) < 2, B2, IF (B2> B1, B1 + 1, B1-1)) и копировать

В столбце C приведено одноэтапное ограничение. Наконец, в D1 входят:

= ВЫБРАТЬ (С1 + 1, "Базовый", "Стандарт", "Стандарт +", "Платиновый") и скопировать вниз

Это преобразует коды слов-уровней

enter image description here

+0

, пытаясь понять, что я полностью объяснил это, человек начинает на заданном уровне Базовый стандарт и т. Д. Затем накапливает очки в течение 14 дней, затем в зависимости от их начальной точки они перемещаются вверх или остаются неизменными в результате общее количество баллов, например, человек, начинающийся с Стандартных потребностей> = 750, чтобы перейти на стандарт + 500-749, чтобы оставаться на том же уровне или <500, чтобы перейти к базовому. e.g2 Стандарт + человек нуждается в> = 850, чтобы перейти на платину, 750-849, чтобы оставаться на уровне Стандарта +, и если <750 опустится до Стандарта, точки накапливаются ежедневно до общей оценки по этим критериям каждые 14 дней – Steve

 Смежные вопросы

  • Нет связанных вопросов^_^