• ベストアンサー

条件で計算式をかえたい

初歩的な質問ですが、以下の計算式をするにはどのように設定したらよいのでしょうか? セルA1に4~12を入力するとセルA2に 1~9 と表示 セルA1に1~3 を入力するとセルA2に10~12と表示

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

=IF(A1<4,A1+9,A1-9) でよいでしょう。 A1<1、A1>12の条件は指定されていないので考慮していません

その他の回答 (5)

noname#52504
noname#52504
回答No.6

IFやMATCHを使う方が標準的なのかもしれませんが…。 私なら、規則性を生かして…というより、"素朴"に、  =MOD(A1-4,12)+1 としますね。一応ご参考まで。

回答No.5

確かに質問の仕方がとても下手。想像するに、「月」から「年度のxヶ月目」 への変換を試みているような気配がするね。 =month(date(2008, A1-3, 1)) どこかにちゃんと日付形式のデータがあるなら、それを直接使って =month(edate(日付,-3)) としてもいいかも。ただし「分析ツール」が必要。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

質問の表現が不正確荷「見える。 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)
回答No.3

=MATCH(A1,{4,5,6,7,8,9,10,11,12,1,2,3},0) これでいかがですか?

  • Hachi5592
  • ベストアンサー率36% (252/698)
回答No.2

セルA1に1~12の数字しか入らないとすれば =IF(A1>=4,A1-3,A1+9)