- ベストアンサー
このような関数はどのように作ればいいでしょうか?
このような関数はどのように作ればいいでしょうか? A1が空白の場合B1が70~75であればC1は30 76~80であればC1は31 81~85であればC1は32 86~90であればC1は33・・・ です。 宜しくお願いします^^
- みんなの回答 (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; } } テストしていませんのでよろしく
その他の回答 (1)
対象ソフトが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で良いのか といったことはご質問からは読みきれませんでした。