Я работаю с Excel 2010 на Windows, я начинающий пользователь Excel, но я могу программировать, так что вы можете бросить VBA на меня. У меня есть ряд ячеек, в которых пользователь может ввести число, а в другой ячейке должна отображаться классификация на основе интервала, в котором находится число.

например:

0%:     -> nothing
01-20%: -> not a lot
21-50%  -> below average

etc...

Это необходимо для ряда различных форматов (целые числа, числа с плавающей запятой). Какой самый элегантный способ подойти к этому?

3 ответа3

0

Вы не заявили, что это было в VBA. Я считаю, что с формулой это легче выполнить, чем пытаться вызвать VBA из пользовательского ввода.

Итак, вот способ использования вложенного IF с оператором AND для выполнения того, что вы описали. В этом случае значение вводится в A1 а классификация отображается в B1 .

Поместите эту формулу в B1 .

=IF(AND(A1>0.7,A1<=1),"above average",IF(AND(A1>0.5,A1<=0.7),"average",IF(AND(A1>0.2,A1<=0.5),"below average",IF(AND(A1>0.01,A1<=0.2),"not a lot", ""))))

Возможно, вам придется настроить вещи в соответствии с вашими потребностями.

0

Другой вариант - иметь справочную таблицу с данными о корзине где-нибудь в вашей книге. Затем вы можете использовать функцию VLOOKUP для классификации вашего ввода, сравнивая его с таблицей.

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

=VLOOKUP(B1,$E$3:$F$8,2,TRUE)
0

Если вы предпочитаете использовать VBA, а затем настраивать и усложнять, как вам нравится, ха-ха:

Function MyFunction(inputvalue As Double)

  Select Case inputvalue

    Case Is = 0:
    MyFunction = "nothing"
    Case Is <= 0.2:
    MyFunction = "not a lot"
    Case Is <= 0.5:
    MyFunction = "below average":
    Case Is > 0.5:
    MyFunction = "above average"

  End Select

End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .