2017-01-11 6 views
0
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であれば、それは「「underweigh」、「健康」や太りすぎのいずれかに分類されるだろう、性別や年齢によって異なります。Excelの場合、if、

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 
+1

[お問い合わせ](http:// stackoverflow。 com/help/how-to-ask)、それに応じて質問を編集して読みやすくしてください。その質問は、書かれた書式で閉じられる可能性が非常に高い。 –

+0

あなたがすでに試したことをよく覚えておいて、入力したものと返されるはずのものを整形してください。 – thatsIch

+0

ヒントとして、例がない場合、私はIF()とVLOOKUP()がうまくいくことを示唆しています。 –

答えて

0

あなたはIFのワークブック関数を使用して、所望の結果を得ることができます。取得するには複数のシングルにおける基準条件のANDを(使用する場合)およびOR()関数場合作成する - 。ELSEIF型ロジックを、ネストが適切なセクションの内部IF()関数を追加した例として

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

これは取得する必要があります。あなたは正しい道を始める。

+0

私は私のケースではVBAが必要だと思います、私は3つの変数を持っています。それらはすべて依存しています。年齢、性別、BPIなどがあります。 Bpiは数字です。この数字は、ユーザーの年齢と性別に基づいて分析する必要があります。例えば。彼らの年齢が男性でBPI <8の場合、女性は「体重が低い」人は20-39歳の人とは異なります。 20歳から39歳、女性で21歳未満の場合は、体重が減少します。 –

+0

複雑なロジックの場合、VBAを使用すると、読みやすく管理しやすくなります。パラメータとして3つの変数を取り、目的の結果文字列を返す関数を作成するだけです。その後、その関数をセルで呼び出します。 –