【发布时间】:2017-05-25 17:49:21
【问题描述】:
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 是一个数字,结果将是“体重过轻”、健康“或超重”。但是实际上是 BPI 的 x 对于男性和女性来说是不一样的。例如,如果 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
【问题讨论】:
-
请阅读How to Ask 并相应地编辑您的问题以提高可读性。该问题很可能以其书面形式结束。
-
请您已经尝试过并且格式正确的显示您输入的内容和应该返回的内容。
-
作为一个提示,没有例子,我建议 IF() 和 VLOOKUP() 可以工作。
-
@SolarMike 我认为我的情况需要 VBA,我有 3 个变量,它们都是依赖的。年龄、性别和 BPI。 Bpi 是一个数字。这个数字必须根据用户的年龄和性别进行分析。例如。年龄在 20-39 之间的人,如果他们是男性并且他们的 BPI
-
注意到您给 Alan Wage 的回复与给我的回复相同...如果您将数据放在两个表中:男性和女性,然后查找等可以工作 - 这在很大程度上取决于您如何构建数据,这也控制了更改或更新值的难易程度。如果您将它们全部“硬编码”在函数中,那么更新值很困难:可以在计算按设置进行时快速更改表值。
标签: excel if-statement excel-formula ifs vba