人月(にんげつ)とは、1人が1か月働いてこなせる作業量を1とする工数の単位で、「人数×月数」で計算します。 3人で4か月かかる作業は 3×4=12人月です。金額は「人月×人月単価」で求めます。

この記事では、単位の換算と金額の計算に絞って、人時・人日・人月の換算早見表、単価の変換、兼務や精算幅の計算例をまとめました。計算はすべて Python で検算し、表計算ソフトに貼れる数式も付けています。記事中の単価や金額は、計算の手順を示すための架空の例です。

確認環境:Python 3.11.15(標準ライブラリのみで検算)、LibreOffice Calc 24.2.7.2(表計算の数式をヘッドレス実行で検算)。確認日は 2026-10-05 です。

この記事の結論

  • 人月=人数×月数。 人日=人数×日数、人時=人数×時間も同じ形です。
  • 金額=人月×人月単価。 期間は人月の中にすでに入っているので、もう一度掛けません。
  • 1人月を何日・何時間とするかを先に確認する。 20日×8時間=160時間とすることが多いものの、決まった値はなく、契約や見積の前提で決まります。
  • 人日単価=人月単価÷1人月の日数。 同じ人月単価80万円でも、18日なら約44,444円、20日なら40,000円、21日なら約38,095円になります。
  • 工数(人月)と期間(月)は別のもの。 12人月を12人で割っても、1か月で終わるとは限りません。

人月・人日・人時の換算早見表

1日を8時間として、1人月を18日・20日・21日とした場合の換算です。

人月 1人月=18日 1人月=20日 1人月=21日
0.25 4.5人日=36人時 5人日=40人時 5.25人日=42人時
0.5 9人日=72人時 10人日=80人時 10.5人日=84人時
1 18人日=144人時 20人日=160人時 21人日=168人時
2 36人日=288人時 40人日=320人時 42人日=336人時
3 54人日=432人時 60人日=480人時 63人日=504人時
6 108人日=864人時 120人日=960人時 126人日=1,008人時
10 180人日=1,440人時 200人日=1,600人時 210人日=1,680人時
12 216人日=1,728人時 240人日=1,920人時 252人日=2,016人時

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「人月の計算方法|人日・人時の換算式と単価の計算例・早見表」

換算式の一覧

求めたいもの 式 例(1人月=20日、1日=8時間)
人月 人数 × 月数 3人 × 4か月 = 12人月
人日 人数 × 日数 2人 × 5日 = 10人日
人時 人数 × 時間 4人 × 2時間 = 8人時
人月 → 人日 人月 × 1人月の日数 1.5人月 × 20 = 30人日
人日 → 人月 人日 ÷ 1人月の日数 45人日 ÷ 20 = 2.25人月
人日 → 人時 人日 × 1日の時間 10人日 × 8 = 80人時
人月 → 人時 人月 × 1人月の日数 × 1日の時間 1人月 × 20 × 8 = 160人時
金額 人月 × 人月単価 12人月 × 80万円 = 960万円
人日単価 人月単価 ÷ 1人月の日数 80万円 ÷ 20 = 4万円
人時単価 人月単価 ÷ 1人月の時間 80万円 ÷ 160 = 5,000円
期間(目安) 人月 ÷ 人数 12人月 ÷ 3人 = 4か月
人数(目安) 人月 ÷ 月数 12人月 ÷ 4か月 = 3人

タブ区切り版

人月  1人月=18日(人日) 1人月=18日(人時) 1人月=20日(人日) 1人月=20日(人時) 1人月=21日(人日) 1人月=21日(人時)
0.25    4.5 36  5   40  5.25    42
0.5 9   72  10  80  10.5    84
1   18  144 20  160 21  168
2   36  288 40  320 42  336
3   54  432 60  480 63  504
6   108 864 120 960 126 1008
10  180 1440    200 1600    210 1680
12  216 1728    240 1920    252 2016

1人月は何日・何時間か

1人月の日数に決まった値はありません。 見積や契約ごとに前提として決めます。

1人月の置き方 日数 時間(1日8時間) 考え方
18日 18 144 祝日や休暇を差し引いた、ならした稼働日数で置く
20日 20 160 週5日×4週。計算しやすく、多く使われる
21日 21 168 祝日のない月の平日の日数に近い値で置く

同じ「10人月」でも、18日なら180人日、21日なら210人日で、30人日の開きが出ます。見積書や計画書には「1人月=20人日、1人日=8時間として算出」のように前提を1行書いておくと、読む人との食い違いを防げます。

人月と金額の計算

基本:金額=人月×人月単価

3人で4か月、人月単価80万円(架空の例)の場合です。

  • 人月:3人 × 4か月 = 12人月
  • 金額:12人月 × 80万円 = 960万円

「人月×単価×期間」とは計算しません。 人月は人数と月数をすでに掛けた値なので、もう一度期間を掛けると二重になります。式を「人数×月数×単価」と3つに分けて書くと、取り違えにくくなります。

逆に、予算から使える工数を出すときは割り算です。予算600万円、人月単価80万円なら、600万円 ÷ 80万円 = 7.5人月です。

人日単価と人月単価の変換

人月単価80万円のとき 人日単価 人時単価(1日8時間)
1人月=18日 44,444.44円 5,555.56円
1人月=20日 40,000円 5,000円
1人月=21日 38,095.24円 4,761.90円

逆向きの変換も、掛ける日数で結果が変わります。人日単価4万円は、18日なら72万円、20日なら80万円、21日なら84万円の人月単価に相当します。単価を比べるときは、単位(人月・人日・人時)と、1人月の日数をそろえてから比べます。

0.5人月と兼務30%の扱い

人月は小数で表せます。0.5人月は「1人が半月」でも「2人が4分の1か月ずつ」でも同じ0.5です。

兼務は、割合に月数を掛けます。作業時間の30%を6か月あてる人は、0.3 × 6 = 1.8人月です。人月単価80万円なら 1.8 × 80万円 = 144万円になります。

担当 割合 月数 人月
Aさん 100% 6 6
Bさん 50% 6 3
Cさん 30% 6 1.8
Dさん 100% 3 3
合計 13.8

合計13.8人月、人月単価80万円で1,104万円です。

兼務の割合を足し合わせると、1人の合計が100%を超えていることがあります。担当者ごとに、関わっている作業の割合を横に合計して確かめます。

精算幅140〜180時間の超過・控除

月額で契約し、稼働時間が一定の幅に収まれば月額のまま、幅を超えた分や下回った分を時間単価で精算する決め方があります。幅と単価の出し方は契約で決まります。ここでは月額80万円、精算幅140〜180時間の架空の例で、2通りの出し方を計算します。

方式 超過単価 控除単価
上下割 月額 ÷ 上限時間 = 80万円 ÷ 180 = 4,444.44… → 4,440円 月額 ÷ 下限時間 = 80万円 ÷ 140 = 5,714.29… → 5,710円
中間割 月額 ÷ 中間の時間 = 80万円 ÷ 160 = 5,000円 同じく 5,000円

(10円未満を切り捨てる例。端数の扱いも契約で決めます)

稼働時間 幅との差 上下割の金額 中間割の金額
132時間 下限より8時間少ない 80万円 − 8 × 5,710 = 754,320円 80万円 − 8 × 5,000 = 760,000円
140時間 幅の内 800,000円 800,000円
160時間 幅の内 800,000円 800,000円
180時間 幅の内 800,000円 800,000円
192時間 上限より12時間多い 80万円 + 12 × 4,440 = 853,280円 80万円 + 12 × 5,000 = 860,000円

上下割では、控除単価(5,710円)のほうが超過単価(4,440円)より高くなります。 割る数が小さいほど単価が大きくなるためです。中間割は超過も控除も同じ単価です。契約書の「精算」の項で、幅・単価の出し方・端数の扱いの3点を確認します。

稼働率と予備を含めた計算

1か月のすべての時間を作業にあてられるわけではありません。会議や問い合わせ対応などを除き、作業に使える割合を稼働率として置く場合は、作業そのものの工数を稼働率で割ります。

  • 作業そのものの工数:10人月
  • 稼働率80%で必要な工数:10 ÷ 0.8 = 12.5人月
  • 予備10%:12.5 × 0.1 = 1.25人月
  • 合計:13.75人月 → 人月単価80万円で1,100万円

稼働率は「掛ける」のではなく「割る」点に注意します。 10 × 0.8 = 8人月としてしまうと、必要な工数が逆に減ってしまいます。稼働率と予備の値は例であり、チームの記録をもとに決めます。

Pythonで検算する

ここまでの計算を、1つのスクリプトで検算しました。小数の誤差を避けるため、割合や単価の割り算には標準ライブラリの Fraction(分数)を使っています。

# manmonth.py : 人月・人日・人時の換算と金額の検算(Python 3.11、標準ライブラリのみ)
from fractions import Fraction as F

HOURS_PER_DAY = 8

print("== 1. 換算早見表(1日=8時間) ==")
print("人月\t18日/月\t\t20日/月\t\t21日/月")
for mm in (F(1, 4), F(1, 2), 1, 2, 3, 6, 10, 12):
    cells = []
    for days in (18, 20, 21):
        d = mm * days
        cells.append(f"{float(d):g}人日={float(d * HOURS_PER_DAY):g}人時")
    print(f"{float(mm):g}\t" + "\t".join(cells))

print("== 2. 人月と金額 ==")
people, months, unit = 3, 4, 800_000
mm = people * months
print(f"{people}人×{months}か月={mm}人月, 金額={mm}×{unit:,}={mm * unit:,}円")
budget = 6_000_000
print(f"予算{budget:,}円÷単価{unit:,}円={budget / unit}人月")

print("== 3. 人月単価から人日単価・人時単価 ==")
for days in (18, 20, 21):
    per_day = F(unit, days)
    per_hour = per_day / HOURS_PER_DAY
    print(f"1人月={days}日: 人日単価={float(per_day):,.2f}円, 人時単価={float(per_hour):,.2f}円")
print("人日単価40,000円×20日=", f"{40_000 * 20:,}円/人月")
print("人日単価40,000円×18日=", f"{40_000 * 18:,}円/人月")
print("人日単価40,000円×21日=", f"{40_000 * 21:,}円/人月")

print("== 4. 0.5人月と兼務30% ==")
print(f"0.5人月×{unit:,}={int(F(1, 2) * unit):,}円")
ratio, m = F(30, 100), 6
print(f"兼務30%×{m}か月={float(ratio * m)}人月, 金額={int(ratio * m * unit):,}円")
print("0.1+0.2 を float で足すと", 0.1 + 0.2, "/ Fraction では", float(F(1, 10) + F(2, 10)))
members = [("Aさん", 100, 6), ("Bさん", 50, 6), ("Cさん", 30, 6), ("Dさん", 100, 3)]
total = sum(F(p, 100) * mth for _, p, mth in members)
for name, p, mth in members:
    print(f"  {name}: {p}%×{mth}か月={float(F(p, 100) * mth):g}人月")
print(f"  合計={float(total):g}人月, 金額={int(total * unit):,}円")

print("== 5. 精算幅140〜180時間 ==")
LOW, HIGH = 140, 180
def floor10(x):            # 10円未満を切り捨てる
    return int(x) // 10 * 10
over_rate, under_rate = floor10(F(unit, HIGH)), floor10(F(unit, LOW))
mid_rate = floor10(F(unit, (LOW + HIGH) // 2))
print(f"上下割: 超過単価={unit:,}÷{HIGH}={float(F(unit, HIGH)):.2f}→{over_rate:,}円, 控除単価={unit:,}÷{LOW}={float(F(unit, LOW)):.2f}→{under_rate:,}円")
print(f"中間割: {unit:,}÷{(LOW + HIGH) // 2}={mid_rate:,}円(超過・控除とも)")
def settle(hours, over, under):
    if hours > HIGH:
        return unit + (hours - HIGH) * over
    if hours < LOW:
        return unit - (LOW - hours) * under
    return unit
print("稼働時間\t上下割\t\t中間割")
for h in (132, 140, 160, 180, 192):
    print(f"{h}\t\t{settle(h, over_rate, under_rate):,}\t\t{settle(h, mid_rate, mid_rate):,}")

print("== 6. 稼働率と予備を含めた計算 ==")
effort = 10          # 作業そのものの工数(人月)
rate = F(80, 100)    # 作業に使える時間の割合
need = effort / rate
buf = need * F(10, 100)
print(f"作業工数{effort}人月÷稼働率0.8={float(need)}人月, 予備10%={float(buf)}人月, 合計={float(need + buf)}人月, 金額={int((need + buf) * unit):,}円")

print("== 7. 人数と連絡経路 n(n-1)/2 ==")
print("人数\t連絡経路\t12人月を割った期間(月)")
for n in (1, 2, 3, 4, 5, 6, 8, 10, 12, 20):
    print(f"{n}\t{n * (n - 1) // 2}\t\t{12 / n:g}")

実行結果:

== 1. 換算早見表(1日=8時間) ==
人月  18日/月       20日/月       21日/月
0.25    4.5人日=36人時  5人日=40人時    5.25人日=42人時
0.5 9人日=72人時    10人日=80人時   10.5人日=84人時
1   18人日=144人時  20人日=160人時  21人日=168人時
2   36人日=288人時  40人日=320人時  42人日=336人時
3   54人日=432人時  60人日=480人時  63人日=504人時
6   108人日=864人時 120人日=960人時 126人日=1008人時
10  180人日=1440人時    200人日=1600人時    210人日=1680人時
12  216人日=1728人時    240人日=1920人時    252人日=2016人時
== 2. 人月と金額 ==
3人×4か月=12人月, 金額=12×800,000=9,600,000円
予算6,000,000円÷単価800,000円=7.5人月
== 3. 人月単価から人日単価・人時単価 ==
1人月=18日: 人日単価=44,444.44円, 人時単価=5,555.56円
1人月=20日: 人日単価=40,000.00円, 人時単価=5,000.00円
1人月=21日: 人日単価=38,095.24円, 人時単価=4,761.90円
人日単価40,000円×20日= 800,000円/人月
人日単価40,000円×18日= 720,000円/人月
人日単価40,000円×21日= 840,000円/人月
== 4. 0.5人月と兼務30% ==
0.5人月×800,000=400,000円
兼務30%×6か月=1.8人月, 金額=1,440,000円
0.1+0.2 を float で足すと 0.30000000000000004 / Fraction では 0.3
  Aさん: 100%×6か月=6人月
  Bさん: 50%×6か月=3人月
  Cさん: 30%×6か月=1.8人月
  Dさん: 100%×3か月=3人月
  合計=13.8人月, 金額=11,040,000円
== 5. 精算幅140〜180時間 ==
上下割: 超過単価=800,000÷180=4444.44→4,440円, 控除単価=800,000÷140=5714.29→5,710円
中間割: 800,000÷160=5,000円(超過・控除とも)
稼働時間    上下割     中間割
132     754,320     760,000
140     800,000     800,000
160     800,000     800,000
180     800,000     800,000
192     853,280     860,000
== 6. 稼働率と予備を含めた計算 ==
作業工数10人月÷稼働率0.8=12.5人月, 予備10%=1.25人月, 合計=13.75人月, 金額=11,000,000円
== 7. 人数と連絡経路 n(n-1)/2 ==
人数  連絡経路    12人月を割った期間(月)
1   0       12
2   1       6
3   3       4
4   6       3
5   10      2.4
6   15      2
8   28      1.5
10  45      1.2
12  66      1
20  190     0.6

表計算ソフトに貼れる数式と見積表

見積表(タブ区切り)

次のブロックをコピーして、表計算ソフトのA1セルに貼ります。D列(人月)とF列(金額)、7行目の合計は数式で計算されます。

工程  人数  月数  人月  人月単価    金額
要件定義    2   1   =B2*C2  900000  =D2*E2
基本設計    3   1.5 =B3*C3  850000  =D3*E3
詳細設計・製造 4   3   =B4*C4  800000  =D4*E4
テスト 3   1.5 =B5*C5  750000  =D5*E5
移行・リリース 2   0.5 =B6*C6  800000  =D6*E6
合計          =SUM(D2:D6) =F7/D7  =SUM(F2:F6)

LibreOffice Calc で計算した結果です(単価は架空の例)。

工程 人数 月数 人月 人月単価 金額
要件定義 2 1 2 900,000 1,800,000
基本設計 3 1.5 4.5 850,000 3,825,000
詳細設計・製造 4 3 12 800,000 9,600,000
テスト 3 1.5 4.5 750,000 3,375,000
移行・リリース 2 0.5 1 800,000 800,000
合計 24 808,333.33(平均) 19,400,000

E7セルの「金額の合計÷人月の合計」は、工程ごとに単価が違う場合の平均単価です。単価の単純な平均(82万円)とは一致しません。工数の多い工程の単価に引っぱられるためです。

よく使う数式

やりたいこと 数式 計算結果
人月を人日にする(24人月、20日) =24*20 480
人月を人時にする(24人月、20日、8時間) =24*20*8 3840
人日を人月にする(45人日、20日) =45/20 2.25
人日を人月にして小数1桁に切り上げる =ROUNDUP(45/20,1) 2.3
人月単価から人日単価を出す =800000/20 40000
人月単価から人時単価を出す =800000/20/8 5000
兼務30%を6か月 =0.3*6 1.8
上の金額 =0.3*6*800000 1440000
超過単価(10円未満切り捨て) =ROUNDDOWN(800000/180,-1) 4440
控除単価(10円未満切り捨て) =ROUNDDOWN(800000/140,-1) 5710
連絡経路の数(10人) =10*(10-1)/2 45
同じ値を関数で =COMBIN(10,2) 45

精算後の金額を1つの式で出す場合は、B2セルに稼働時間を入れて次の式を使います。

=800000+IF(B2>180,(B2-180)*ROUNDDOWN(800000/180,-1),IF(B2<140,-(140-B2)*ROUNDDOWN(800000/140,-1),0))

B2が192なら853280、132なら754320、160なら800000になり、Python の結果と一致しました。数式はすべて LibreOffice Calc 24.2 で計算した値です。

工数(人月)と期間(月)の違い

比べる点 工数(人月) 期間(月)
表すもの 作業の量 暦の上の長さ
単位 人月・人日・人時 月・週・日
求め方 人数 × 月数 開始日から終了日まで
使う場面 見積、金額の計算、要員の計画 スケジュール、納期の約束
人を増やすと 変わらない(増えることもある) 短くなるとは限らない

12人月の作業は、式の上では3人で4か月、6人で2か月、12人で1か月です。けれども、人を2倍にしても期間が半分になるとは限りません。 人数が増えると、連絡し合う相手の組み合わせが増えるためです。

n人のチームで、2人ずつの連絡経路の数は n(n−1)/2 で計算できます。

人数 連絡経路の数 12人月を人数で割った期間(式の上の値)
1 0 12か月
2 1 6か月
3 3 4か月
4 6 3か月
5 10 2.4か月
6 15 2か月
8 28 1.5か月
10 45 1.2か月
12 66 1か月
20 190 0.6か月

3人から6人に増やすと、人数は2倍ですが、連絡経路は3本から15本へと5倍になります。打ち合わせや認識合わせに使う時間が増え、新しく加わった人が慣れるまでの時間もかかります。さらに、順番にしか進められない作業(設計が終わってから製造する、など)は、人を増やしても並行して進められません。

どの単位を使うかの判断表

条件 使う単位
数か月以上の開発全体の規模や金額を示す 人月
数日〜数週間の作業を見積もる、WBSの作業ごとに工数を置く 人日
1日未満の作業、保守や問い合わせ対応の集計、時間で精算する契約 人時
納期やマイルストーンを約束する 期間(月・週・日)
単価の違う人が混ざる 役割ごとに人月と単価を分けて計算する

確かめて分かったこと

  • 1人月の日数を18日から21日に変えるだけで、人日単価は約6,349円変わる。 人月単価80万円の例で、44,444円と38,095円の差です。
  • 上下割の精算では、控除単価が超過単価より1,270円高くなった。 同じ12時間でも、超過と控除で金額の動きが違います。
  • 0.1+0.2 を小数のまま足すと 0.30000000000000004 になる。 兼務の割合を足し上げるプログラムでは、分数や整数(パーセントや分単位)で持つと誤差が出ません。
  • 工程ごとに単価が違うとき、平均単価は「金額の合計÷人月の合計」で出す。 例では約808,333円で、単価の単純平均の82万円とは違う値になりました。
  • 連絡経路は人数の2乗に近い速さで増える。 10人で45本、20人で190本です。
  • 表計算の ROUNDDOWN は、桁数に −1 を指定すると10円未満を切り捨てる。 Python の整数の割り算(10で割って10を掛ける)と同じ結果になりました。

よくある質問

Q. 人月とは何ですか? A. 1人が1か月でこなせる作業量を1とする、工数の単位です。人数×月数で計算し、3人で2か月なら6人月です。

Q. 人月と人日の違いは何ですか? A. 基準にする長さが違います。人月は1か月、人日は1日が基準です。1人月を20日とするなら、1人月=20人日です。

Q. 1人月は何日・何時間ですか? A. 決まった値はなく、契約や見積の前提で決まります。20日×8時間=160時間とすることが多く、18日や21日とする場合もあります。

Q. 人月単価から金額を計算するには? A. 人月に人月単価を掛けます。12人月で人月単価80万円なら960万円です。期間は人月に含まれているので、もう一度掛けません。

Q. 人日から人月に換算できないときは? A. 1人月を何日とするかが決まっていないことが原因です。前提(例:1人月=20人日)を決めてから、人日÷20で計算します。

まとめ

  • 人月=人数×月数、金額=人月×人月単価。 期間を二重に掛けない。
  • 1人月の日数(18日・20日・21日など)と1日の時間を、最初に確認する。
  • 人日単価=人月単価÷1人月の日数。 単価は単位と前提をそろえて比べる。
  • 兼務は「割合×月数」で人月にする。 1人の合計が100%を超えていないか確かめる。
  • 精算幅は、幅・単価の出し方・端数の扱いの3点を契約書で確認する。
  • 稼働率は割り、予備は足す。 値は例であり、チームの記録から決める。
  • 工数と期間は別のもの。 人数を増やすと連絡経路が n(n−1)/2 で増える。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「人月の計算方法|人日・人時の換算式と単価の計算例・早見表」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?