- ベストアンサー
条件で計算式をかえたい
初歩的な質問ですが、以下の計算式をするにはどのように設定したらよいのでしょうか? セルA1に4~12を入力するとセルA2に 1~9 と表示 セルA1に1~3 を入力するとセルA2に10~12と表示
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
=IF(A1<4,A1+9,A1-9) でよいでしょう。 A1<1、A1>12の条件は指定されていないので考慮していません
その他の回答 (5)
IFやMATCHを使う方が標準的なのかもしれませんが…。 私なら、規則性を生かして…というより、"素朴"に、 =MOD(A1-4,12)+1 としますね。一応ご参考まで。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
確かに質問の仕方がとても下手。想像するに、「月」から「年度のxヶ月目」 への変換を試みているような気配がするね。 =month(date(2008, A1-3, 1)) どこかにちゃんと日付形式のデータがあるなら、それを直接使って =month(edate(日付,-3)) としてもいいかも。ただし「分析ツール」が必要。
- imogasi
- ベストアンサー率27% (4737/17069)
質問の表現が不正確荷「見える。 A1は整数に限るのか。 決算期が3月で、ある月が期初来第何月目かを求めたいのかな。 整数以外を入れたときどうするかは案外むつかしい。 >4~12を入力するとセルA2に A2セルには=A1-3 のようにも取れるし、1-9の間の値に制限したいとも取れる 同じく >セルA1に1~3 を入力するとセルA2に10~12と表 A2セルに=A1+9 とも取れるし、10-12の間の値に制限したいとも取れる。 ーー 前者ならIF関数の利用(ネストにはなるが)と範囲をあらわすAND関数を使い =IF(AND(A1>=1,A1<=3),A1+9,IF(AND(A1>=4,A1<=12),A1-3,"")) ーー Vlookup関数などを使った凝った方法もある。これだと小数を入れるとエラーにできる。 A1に数字を入れて A2に =IF(ISERROR(VLOOKUP(A1,$F$1:$G$12,2,FALSE)),"整数で",VLOOKUP(A1,$F$1:$G$12,2,FALSE)) F1:G12 に(どこでも空き範囲で良いのだが) 1 10 2 11 3 12 4 1 5 2 6 3 7 4 8 5 9 6 10 7 11 8 12 9 の表を作る。 3.3など入れるとエラーにできるようだ。
- lark_0925
- ベストアンサー率63% (37/58)
=MATCH(A1,{4,5,6,7,8,9,10,11,12,1,2,3},0) これでいかがですか?
- Hachi5592
- ベストアンサー率36% (252/698)
セルA1に1~12の数字しか入らないとすれば =IF(A1>=4,A1-3,A1+9)