• ベストアンサー

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

このような関数はどのように作ればいいでしょうか? A1が空白の場合B1が70~75であればC1は30                 76~80であればC1は31                 81~85であればC1は32                 86~90であればC1は33・・・ です。 宜しくお願いします^^

質問者が選んだベストアンサー

  • ベストアンサー
  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.1

言語がよく分からないので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;   } } テストしていませんのでよろしく

その他の回答 (1)

noname#52504
noname#52504
回答No.2

対象ソフトが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で良いのか といったことはご質問からは読みきれませんでした。

関連するQ&A