匿名質問者

EXCELで年数月数の計算方法

EXCELで「〇年〇ヶ月」-「△年△ヶ月」といった計算はできますか?
たとえば(A1セル)18年2ヶ月-(B1セル)16年0か月=(C1セル)2年2ヶ月といった計算の
C1セルに2年2ヶ月と表示させる式を知りたいです。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2020/02/15 15:05:07

回答2件)

匿名回答1号 No.1

Excelの標準の関数とかではこのような機能な無い(と思います)。
で、こんなときは、VBAでのユーザー関数を使うことになろうかと。

以下を参考に試してみてください。

まずはVBEエディターを開いて、下のVBAロジックをコピーしてVBEエディター上に貼り付けます。


Function 期間算出(期間1, 期間2)
Dim p1Y, p1M, p2Y, p2M
Dim wk1Y, wk1M, wk2Y, wk2M, wk3Y, wk3M

' 単位文字の位置を確認
p1Y = InStr(期間1, "年")
p1M = InStr(期間1, "ヶ月")
p2Y = InStr(期間2, "年")
p2M = InStr(期間2, "ヶ月")

' 単位文字の位置確認結果より形式をチェック
If p1Y = 0 Or p1M = 0 Or p2Y = 0 Or p2M = 0 Then
期間算出 = "データ形式不適!"
Exit Function
End If

'数値を求める
wk1Y = Val(Left(期間1, p1Y - 1))
wk1M = Val(Mid(期間1, p1Y + 1, p1M - p1Y - 1))
wk2Y = Val(Left(期間2, p2Y - 1))
wk2M = Val(Mid(期間2, p2Y + 1, p2M - p2Y - 1))

' 期間を算出
If wk1M > wk2M Then
'月数の大小が順当の場合
wk3Y = wk1Y - wk2Y
wk3M = wk1M - wk2M
Else
'月数の大小が逆転の場合
wk3Y = wk1Y - wk2Y - 1
wk3M = (wk1M + 12) - wk2M
End If

' 算出結果を添えて形式に整える
期間算出 = wk3Y & "年" & wk3M & "ヶ月"
'
End Function



次に、C1セルに以下の式を設定します。
=期間算出(A1,B1)

(以上です)

匿名回答2号 No.2

=IF(VALUE(MID(A1,FIND("年",A1)+1,FIND("ヶ",A1)-FIND("年",A1)-1))-VALUE(MID(B1,FIND("年",B1)+1,FIND("ヶ",B1)-FIND("年",B1)-1))<0,VALUE(LEFT(A1,FIND("年",A1)-1))-VALUE(LEFT(B1,FIND("年",B1)-1))-1,VALUE(LEFT(A1,FIND("年",A1)-1))-VALUE(LEFT(B1,FIND("年",B1)-1)))&"年"&IF(VALUE(MID(A1,FIND("年",A1)+1,FIND("ヶ",A1)-FIND("年",A1)-1))-VALUE(MID(B1,FIND("年",B1)+1,FIND("ヶ",B1)-FIND("年",B1)-1))<0,12+VALUE(MID(A1,FIND("年",A1)+1,FIND("ヶ",A1)-FIND("年",A1)-1))-VALUE(MID(B1,FIND("年",B1)+1,FIND("ヶ",B1)-FIND("年",B1)-1)),VALUE(MID(A1,FIND("年",A1)+1,FIND("ヶ",A1)-FIND("年",A1)-1))-VALUE(MID(B1,FIND("年",B1)+1,FIND("ヶ",B1)-FIND("年",B1)-1)))&"ヶ月"

---------------------------------------------------
これをC1セルに貼り付けます。
やっていることは、1号さんと同じです。

  • 匿名回答1号
    匿名回答1号 2020/02/21 22:12:01
    質問者は?いったい?
    どうなってるのかな?
    質問しっ放し、回答受けっ放し、とは! 梨のつぶてとは!
    何を欲しいでもないが、回答を受けてどうなったか、くらいは知りたいよね!
    (「匿名」だから、適当でいいと、気楽してるのかな?)
    ここの精神に悖ると思うけど、つい、つぶやくけど、、、
    言いたかないが、規約違反じゃね!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません