Три слоя инструкций If-Then в Excel - PullRequest
0 голосов
/ 06 марта 2019

Я работаю над документом Excel, чтобы понять нарушения функций продукта в зависимости от уровня расходов клиента (т. Е. Чем больше они тратят, тем больше у них возможностей выбора. И наоборот, чем меньше они тратят, тем меньше у них выбора)приходится выбирать из.

Существует около 7 переменных, которые мы используем для измерения продуктов. Для каждой из этих переменных есть несколько опций в каждой переменной. Например, одним признаком может быть цвет и переменные этогоцветовой признак может быть черным, белым, красным, желтым и т. д.

В зависимости от уровня расходов клиентов, им может быть или не разрешено иметь определенные параметры из этих переменных. Например:

  • клиент, тратящий 10K, может иметь черный продукт, но никакие другие цвета
  • клиент, тратящий 20K, может иметь синий продукт или черный продукт, но не красный продукт
  • клиент, тратящий 30K, может иметь черный цвет, синий или красный продукт

Так что, если есть запись, где клиент св ожидании 10K и имеет синий продукт, я хотел бы, чтобы он каким-то образом был «помечен», чтобы знать, сколько «нарушений» происходит за определенный промежуток времени (например, декабрь 2018 года).

Мне нужен способ создания оператора if-then, который сначала ищет расходы, затем может ссылаться на то, что / не разрешено в этих расходах, а затем определить, нарушает ли он эти правила.

Ответы [ 3 ]

0 голосов
/ 06 марта 2019

Предполагая, что в столбце A указана сумма расходов, а B - цвет.

Эта формула для любого другого столбца:

=IF(A2>=30000,IF(OR(B2="Black",B2="Blue",B2="Red"),"OK","FLAG"),IF(A2>=20000,IF(OR(B2="Black",B2="Blue"),"OK","FLAG"),IF(A2>=10000,IF(B2="Black","OK","FLAG"),"Less than 10000")))
0 голосов
/ 06 марта 2019

Я бы создал таблицу поиска для определения уровней расходов:

enter image description here

Затем воспользуйтесь следующей формулой, чтобы определить, нужно ли отмечать клиента:

=IF(VLOOKUP(B2,J$2:K$4,2)>A2,"flagged","")

enter image description here

0 голосов
/ 06 марта 2019

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

+-------+-------+-------+
| 19999 | 29999 | 39999 |
+-------+-------+-------+
| black | black | black |
|       | blue  | blue  |
|       |       | red   |
+-------+-------+-------+

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

Dim options As Dictionary
Set options = New Dictionary
options.Add "19999", "black"
options.Add "29999", "black,blue"
options.Add "39999", "black,blue,red"

For Each spend In options.Keys
    'if customer spend is less than the max (defined here as the key)
    'then grab the value, and split it into an array
    allowedChoices = Split(options.Item(spend ), ",")

    ' if the customers selected choice is in the array of allowed choices
    If IsInArray(<the_users_choice>, allowedChoices) Then
        'flag whatever, however
    End If
Next spend 

Это пара вариантов, которые выможно использовать, чтобы приблизиться к этому.Проявите творческий подход - удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...