No.2ベストアンサー
- 回答日時:
差は1年10ヶ月の間違いでは?
もし、入力の仕方自体を変えてもよいのであれば
5年を「5」年「0」ヶ月
3年2ヶ月を「3」年「2」ヶ月
のように年数と月数のみを数値で入力すれば計算は簡単になります。
A1を「5」(年)、B1を「0」(ヶ月)
C1を「3」(年)、D1を「2」(ヶ月)とすると
5年を
=A1*12+B1
で「60」(ヶ月)とし
3年2ヶ月を
=C1*12+D1
で「38」(ヶ月)とし
この二つの差を求めて、12で割って整数部分を取り出す
=INT(((A1*12+B1)-(C1*12+D1))/12)
で、差分の年数「1」(年)
この二つの差を求めて、12で割った余りを取り出す
=MOD((A1*12+B1)-(C1*12+D1),12)
で、差分の月数「10」(ヶ月)
が計算できます。
文字列のまま処理しようとするとかなり複雑になります。
A1に「5年」、B1に「3年2ヶ月」が文字列で入っているとすると
C列、D列を作業列として、C1に
=IF(ISERROR(FIND("年",A1)),0,VALUE(LEFT(A1,FIND("年",A1)-1)))*12+IF(ISERROR(FIND("ヶ月",A1)),0,IF(ISERROR(FIND("年",A1)),LEFT(A1,FIND("ヶ月",A1)-1),MID(A1,FIND("年",A1)+1,FIND("ヶ月",A1)-FIND("年",A1)-1)))
と入力してこれをD1にコピー&ペーストすると
C1がA1を月数に換算した「60」
D1がB1を月数に換算した「38」
になりますので、E1に
=INT((C1-D1)/12)&"年"&MOD(C1-D1,12)&"ヶ月"
とすれば、差分「1年10ヶ月」が計算できます。
なお、C1の式は
・A1の文字列から"年"という文字を探し、"年"より前の部分を数値化して12をかけて月数に換算したもの("年"の文字がなければ0)
・A1の文字列から"ヶ月"という文字を探し、"年"という文字があればその次から、なければ最初から"ヶ月"という文字までの部分を抜き出して数値化したもの("ヶ月"の文字がなければ0)
を足したものです。
No.3
- 回答日時:
こんな方法もあります
入力は
5年 => 500
3年2ヶ月 => 302
という様に、年は百の桁、月は十の桁で入力します
セルの書式設定のユーザー定義で
0"年"00"ヵ月"
とします
図で
C列に
=IF(MOD(A1,100)<MOD(B1,100),A1-B1-88,A1-B1)
と、式を入れます
No.1
- 回答日時:
通常は年齢計算などで使われる式を使うことでしょう。
例えばA1セルに誕生日、B1セルに評価の年月日とでも入力し、それぞれのデータがA2セルおよびB2セルに入力されているとします。
その時の年齢は次のような式で何年年カ月と求めることができます。
=DATEDIF(A2,B2,"Y")&"年"&DATEDIF(A2,B2,"YM")&"ヵ月"
このような式を使うことのできるのはA2セルに例えば1980/1/21,B2セルには2009/10/14のように年月日が入力されていることが必要です。
お示しのケースではA1セルに5年、B1セルに3年2カ月と入力されている状態でその差を求めるのですから上記の式など全く関係ありませんね。
次のような式になるでしょう。
=DATEDIF(IF(ISERROR(FIND("カ月",B1)),SUBSTITUTE(B1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(B1,"年","/"),"カ月","/1"))*1,IF(ISERROR(FIND("カ月",A1)),SUBSTITUTE(A1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(A1,"年","/"),"カ月","/1"))*1,"Y")&"年"&(DATEDIF(IF(ISERROR(FIND("カ月",B1)),SUBSTITUTE(B1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(B1,"年","/"),"カ月","/1"))*1,IF(ISERROR(FIND("カ月",A1)),SUBSTITUTE(A1,"年","/1/1"),SUBSTITUTE(SUBSTITUTE(A1,"年","/"),"カ月","/1"))*1,"YM")-1)&"カ月"
この回答へのお礼
お礼日時:2009/10/29 06:13
御礼遅れて申し訳ありません。
教えていただいた式複雑で齢70直前の老爺にはちょっと難しすぎます
他の方の式を検討させていただきます。
今後ともご指導ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じセルに箇条書きをし...
-
A1セルに入力したら、入力時間...
-
参照先セルに値が入っていない...
-
IF関数で0より大きい数値が入力...
-
空白でないセルの値を返す方法...
-
Excelでセルに入力されたカラー...
-
エクセルで既に入力してある文...
-
Excel:文字と数字の組合せ、次...
-
値を入力後、自動的にアクティ...
-
エクセルで時間の判定をしてい...
-
excel 関数にて文字を0として認...
-
エクセルの数式で計算結果に文...
-
エクセルを保存し終了する際に...
-
エクセルでの早出・残業管理表...
-
yyyy/mm/ddからyyyy/mmへの変換
-
Excel マクロ モジュラス43 vba
-
エクセルで数字10が1に変わる。...
-
エクセルで複数の条件で掛け算...
-
エクセルで1つのセルに2つの時...
-
Excelの指数関数近似曲線からの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
参照先セルに値が入っていない...
-
IF関数で0より大きい数値が入力...
-
エクセルで既に入力してある文...
-
空白でないセルの値を返す方法...
-
Excelでセルに入力されたカラー...
-
入力したところまでを自動的に...
-
Excel:文字と数字の組合せ、次...
-
値を入力後、自動的にアクティ...
-
【Excel】セル内の時間帯が特定...
-
yyyy/mm/ddからyyyy/mmへの変換
-
エクセル セルに文字を入力した...
-
エクセルの数式がかぶって、選...
-
excel 関数にて文字を0として認...
-
エクセルで10分ごとの時刻の...
-
エクセルで時間の判定をしてい...
-
エクセルで複数の条件で掛け算...
-
Excel で空欄にも単位 \\や円 ...
-
マイナス同士の前年比
おすすめ情報