• ベストアンサー

MOD関数

お世話になります。 MOD関数で、数値130を除数12にし、答えは10。 除数12は1月~12月を表したい。 1~12月に10が割り当てられるが、残った10を1月~10月に加算される(前から加算したい)関数を作るにはどうしたら良いでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8469/18132)
回答No.3

何だか難しそうな式が書いてあるけど =INT($M$1/12)+(COLUMN(A1)<=MOD($M$1,12)) =INT($M$1/12)+(ROW(A1)<=MOD($M$1,12)) で十分じゃないの?

yamako102
質問者

お礼

ありがとうございます。 縦横の回答助かりました。 横で表を作成する予定でした。

その他の回答 (6)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.7

添付画像はExcel 2013で検証したものです。 A2~A13へ1月~12月と文字列で入力し、B1へ130と数値を入力した状態でB2~B13を選択して次の数式を入力します。 =INT($B$1/12)+IF(ROW(A$1:A$12)<=MOD($B$1,12),1,0) 確定時にCtrl+Shift+Enterを打鍵して配列数式とします。 B2~B13へ目的の計算結果が表示されました。

yamako102
質問者

お礼

配列数式、知りませんでした… 検証、表も貼ってくださり、ありがとうございました。 私でもできました。

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.6

No.5 補足です。 > 残った10を1月~10月に加算 なので、 =INT(130/12)+IF(A1<=MOD(130,12),MOD(130,12)/INT(130/12),0)

yamako102
質問者

お礼

INTとQUATIENTの説明もつけてくださりありがとうございました。 うまくいきました。 でも、どうしてこの式で正解が出るのかがわからない… 皆さん頭の中に式が構成されるのがすごいです…

  • masnoske
  • ベストアンサー率35% (67/190)
回答No.5

こういうことでしょうか。 A1からA12 に月に該当する1~12を入力しておく。 B1に =INT(130/12)+IF(A1<=MOD(130,12),1,0) を入力。 B1をB12までコピーする。 1月~10月 は 11 に、11月~12月 は 10 になります。 INT(130/12) は QUATIENT(130,12) でも同じです。 どちらも130÷12 の商を求める数式です。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

No2訂正です +MOD($M$1,12)-(MOD($M$1,12)-(MOD($M$1,12)/MOD($M$1,12)) は +1で良かった(笑) =IF(COLUMN(A1)<=MOD($M$1,12),INT($M$1/12)+1,INT($M$1/12)) と =IF(ROW(A1)<=MOD($M$1,12),INT($M$1/12)+1,INT($M$1/12)) に訂正です。

yamako102
質問者

お礼

すみません、最初の回答にお礼してしまいましたが訂正でやってみてうまくいきました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

M1に130を入れるとして 横方向だと =IF(COLUMN(A1)<=MOD($M$1,12),INT($M$1/12)+MOD($M$1,12)-(MOD($M$1,12)-(MOD($M$1,12)/MOD($M$1,12))),INT($M$1/12)) これを横方向に隙間なくコピーしてください。 縦方向だと =IF(ROW(A1)<=MOD($M$1,12),INT($M$1/12)+MOD($M$1,12)-(MOD($M$1,12)-(MOD($M$1,12)/MOD($M$1,12))),INT($M$1/12)) で縦方向に隙間なくコピーしてください。

yamako102
質問者

お礼

やってみました、うまくいきました! 私は実は横方向に表を作りたかったのですが、ご丁寧に両方でご回答くださり、ありがとうございました。

回答No.1

まず添付画像のようなシートを作ってみました。 これのどこを月にすると、何が問題なの?

yamako102
質問者

お礼

分かりにくいところを表にしていただき、ありがとうございました。

yamako102
質問者

補足

補足します。 数値は130、除数は12 10,10,10,10,10,10,10,10,10,10,10,10と 余りは10になりますが、その10を1ずつ 割り振りたい。 割り振ったら、 11,11,11,11,11,11,11,11,11,11,10,10になりますね。 先頭の1~10月に余りを1づつ割り振るための関数を知りたいです。 分かりにくくすみません。

関連するQ&A