【问题标题】:Excel , if function, ifs,Excel , if 函数, ifs,
【发布时间】: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


【解决方案1】:

您可以使用 IF 工作簿功能获得您想要的结果。要在单个 IF 条件中获取多个条件,请使用 AND() 和 OR() 函数。要创建 if - elseif 类型逻辑,请将添加的 IF() 函数嵌套在相应的部分中。举个例子

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

这应该会让你走上正确的道路。

【讨论】:

  • 我认为我的情况需要 VBA,我有 3 个变量,它们都是依赖的。年龄、性别和 BPI。 Bpi 是一个数字。这个数字必须根据用户的年龄和性别进行分析。例如。年龄在 20-39 之间的人,如果他们是男性并且他们的 BPI
  • 对于复杂的逻辑,VBA 提供的结果将更易于阅读和维护。只需创建一个函数,将您的三个变量作为参数并返回所需的结果字符串。然后在单元格中调用该函数。
猜你喜欢
  • 1970-01-01
  • 2016-02-16
  • 1970-01-01
  • 2022-07-01
  • 2021-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多