プロが教えるわが家の防犯対策術!

このような関数はどのように作ればいいでしょうか?

A1が空白の場合B1が70~75であればC1は30
                76~80であればC1は31
                81~85であればC1は32
                86~90であればC1は33・・・
です。
宜しくお願いします^^

A 回答 (2件)

言語がよく分からないのでCで作成してみました。



short GetC(short *a1,short*b1)
{
  if ( a1==' ' )
  {
    if ( b1>=70 && b1<=75 ) return 30;
    if ( b1>=76 && b1<=80 ) return 31;
    if ( b1>=81 && b1<=85 ) return 32;
    if ( b1>=86 && b1<=90 ) return 33;
  }
}

テストしていませんのでよろしく
    • good
    • 0

対象ソフトがExcelだと仮定するとこんな感じでしょうか。



C3:=IF(A1="",IF(AND(ISNUMBER(B1),B1>=70),IF(B1=70,30,INT((B1-71)/5)+30),"未定義B"),"未定義A")

○A1:空白でないとき→文字列"未定義A"を返す
○A1:空白で…
 ☆B1:70未満または数字でないとき→文字列"未定義B"を返す
 ☆B1:70のとき→例外的に30を返す
 ☆B1:71以上の数字のとき、「B1から71差っ引いて5で割って少数以下切り捨てて30を足した値」を返す

ご質問の要件は概ね満たすはずですが、
?不正値のときの処理
?不正値を考慮する必要の有無
?B1:70のときの戻り値はホントに30で良いのか
といったことはご質問からは読みきれませんでした。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!