Excel, если функция, если,

I assume x is the number I'm going to analyze and "y" is as "male" or "female" and "z" is as age group.

x - это число, которое означает «недостаточный вес», «здоровый» или «избыточный вес». но x, который на самом деле является BPI, не одно и то же для мужчин и женщин. например, если x = 21, то в зависимости от пола и возраста он будет классифицироваться как «с недостаточным весом», «здоровым» или «с избыточным весом».

 Function BAI(x As Integer, y As String, z As Integer) As String


 If x < 21 And y = "female" And 20 <= z <= 39 Then
    BAI = "UNDERWEIGHT"

 Elseif 22 <= x <= 33 And y = "Female" And 20 <= z <= 39 Then
    BAI = "Healthy"

ElseIf 34 <= x <= 38 And y = "Female" And 20 <= z <= 39 Then
    BAI = "overweight"

ElseIf x >= 39 And y = "Female" And 20 <= z <= 39 Then
    BAI = "OBESE"

ElseIf x <= 23 And y = "female" And 40 <= z <= 59 Then
    BAI = "UNDERWEIGHT"

ElseIf 24 <= x <= 35 And y = "female" And 40 <= z <= 59 Then
    BAI = "Healthy"

ElseIf 36 <= x <= 41 And y = "female" And 40 <= z <= 59 Then
    BAI = "Overweight"

ElseIf x >= 42 And y = "female" And 40 <= z <= 59 Then
    BAI = "OBESE"

ElseIf x <= 25 And y = "female" And 60 <= z <= 79 Then
    BAI = "UNDERWEIGHT"

ElseIf 26 <= x <= 38 And y = "female" And 60 <= z <= 79 Then
    BAI = "Healthy"

ElseIf 39 <= x <= 43 And y = "female" And 60 <= z <= 79 Then
    BAI = "Overweight"

ElseIf x >= 44 And y = "female" And 60 <= z <= 79 Then
    BAI = "obese"

ElseIf x <= 8 And y = "male" And 20 <= z <= 39 Then
    BAI = "Underweight"

ElseIf 9 <= x <= 21 And y = "male" And 20 <= z <= 39 Then
    BAI = "Healthy"

ElseIf 22 <= x <= 26 And y = "male" And 20 <= z <= 39 Then
    BAI = "overweight"

ElseIf x >= 27 And y = "male" And 20 <= z <= 39 Then
    BAI = "OBESE"

ElseIf x <= 11 And y = "male" And 40 <= z <= 59 Then
    BAI = "UNDERWEIGHT"

ElseIf 12 <= x <= 23 And y = "male" And 40 <= z <= 59 Then
    BAI = "Healthy"

ElseIf 24 <= x <= 28 And y = "male" And 40 <= z <= 59 Then
    BAI = "Overweight"

ElseIf x >= 29 And y = "male" And 40 <= z <= 59 Then
    BAI = "OBESE"

ElseIf x <= 13 And y = "male" And 60 <= z <= 79 Then
    BAI = "UNDERWEIGHT"

ElseIf 14 <= x <= 25 And y = "male" And 60 <= z <= 79 Then
    BAI = "Healthy"

ElseIf 26 <= x <= 30 And y = "male" And 60 <= z <= 79 Then
    BAI = "Overweight"

 End If

 End Function

person Mehdi Fit    schedule 11.01.2017    source источник
comment
Прочтите Как задать вопрос и соответствующим образом отредактируйте свой вопрос для большей читабельности. Вопрос скорее всего будет закрыт в том формате, в котором он написан.   -  person Scott Holtzman    schedule 11.01.2017
comment
Пожалуйста, то, что вы уже пробовали, и хорошо отформатированное отображение того, что вы вводите и что должно быть возвращено.   -  person thatsIch    schedule 11.01.2017
comment
В качестве подсказки, без примера, я бы предположил, что IF () и VLOOKUP () могут работать.   -  person Solar Mike    schedule 11.01.2017
comment
@SolarMike, я думаю, мне нужен VBA для моего случая, у меня есть 3 переменных, все они зависят. возраст, пол и BPI. Bpi - это число. это число необходимо анализировать исходя из возраста и пола пользователя. например. люди в возрасте от 20 до 39 лет, если они мужчины и их индекс массы тела <8, то для женщин они имеют недостаточный вес. если им 20-39 лет, а женщины и bpi ‹21, то они имеют недостаточный вес   -  person Mehdi Fit    schedule 12.01.2017
comment
Замечено, что вы дали Алану Вейджу тот же ответ, что и мне ... Если вы поместите свои данные в две таблицы: для мужчин одна женщина, тогда поиск и т. Д. Может работать - многое из этого зависит от того, как вы структурируете свои данные, а также от этого. контролирует, насколько легко изменить или обновить значения. если у вас все они жестко запрограммированы в функции, то обновление значения затруднено: значение таблицы можно быстро изменить, пока вычисление продолжается, как установлено.   -  person Solar Mike    schedule 12.01.2017


Ответы (1)


Вы можете получить желаемый результат, используя функцию рабочей книги ЕСЛИ. Чтобы получить несколько критериев в одном условии ЕСЛИ, используйте функции И () и ИЛИ (). Чтобы создать логику типа if - elseif, вложите добавленные функции IF () в соответствующие разделы. Например

=IF(OR(AND(A1="Male", A2>20),AND(A1="Female",A2>30)), IF(A3>200,"overweight","healthy"),"otherstuff")

Это должно помочь вам встать на правильный путь.

person Alan Waage    schedule 11.01.2017
comment
Я думаю, мне нужен VBA для моего случая, у меня есть 3 переменных, все они зависят. возраст, пол и BPI. Bpi - это число. это число необходимо анализировать исходя из возраста и пола пользователя. например. люди в возрасте от 20 до 39 лет, если они мужчины и их индекс массы тела <8, то для женщин они имеют недостаточный вес. если им от 20 до 39 лет, а они женщины и bpi <21, то они имеют недостаточный вес. - person Mehdi Fit; 12.01.2017
comment
Для сложной логики VBA предоставляет результаты, которые будет намного легче читать и поддерживать. Просто создайте функцию, которая принимает ваши три переменные в качестве параметров и возвращает желаемую строку результата. Затем вызовите эту функцию в ячейке. - person Alan Waage; 18.01.2017