[[20060714134759]] 『日数の合計の関数』(マキ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日数の合計の関数』(マキ)

 n年 m月
 n年 m月  xxヶ月   ←各期間
                             (年はなしで、例えば30ヶ月とか)
  ・
  ・
  ・
  ・
  ・
  ・

 xx年xxヶ月       ←合 計 
                (こちらは年に振り替えあり)  	

 ここで、上記の「n」と「m」を入力して
 各xx部分を自動的に入るようにしたいのですが
 未熟者のために、悩むことしきりです。

 以前こちらで教授頂いた
  
 現在の日付け − 入社日 = 勤続年数
   Q3セル    D11セル

 これで、答えの勤続年数を出すのに

 =DATEDIF(D11,Q3,"y")&"年"&DATEDIF(D11,Q3,"ym")&"箇月"

 の関数を教えて頂いたので、こちらを加工すれば・・・と思いましたが
 なかなか思いつかないので
 皆様にご教授頂ければ幸いです。

 Excel2003,XP


 とりあえず、ライブラリへのリンク貼っときます。
http://www.excel.studio-kazu.jp/lib/e1m/e1m.html
(sin)

 sinさま、ありがとうございます。
 ライブラリ拝見しました。

 それで、やってみようと思ったのですが
 それ以前で、つまづきまして・・・(−−;;

 n年 m月
 ↑
 ここの年を入れるところで
 計算の為、例えば西暦で「2000」と入れて セルには「H12年」
 と、表示させたいのですが
 ユーザー定義で "H"yy"年" と定義したのですが
 「2000」としか入力していないのに 「1905/6/22」と
 自動的に入力されて???状態です。
 平成だけでなく、昭和もあるのでそこは、"S"yy"年"なのでしょうか?
 分からない事ばかりで進めません。。。。
 宜しくお願いします。


 こちらをご覧いただければ、理由が分かるかも?!(ROUGE)
[[20041118111248]]『シリアル値とは』(まめしば)
  
2000 は 1900/1/0(1899/12/31) から2000日目なので 1905/6/22 となっているのでしょう。
H12年と表示したいのであれば、例えば 2000/1/1 と入力して、
表示形式を「ge"年"」とする。

 まめしばさま、ありがとうございました!!

 リンク拝見しました。
 そして、「ge"年"」も、使わせて頂きました
 そしたら、なんと、自動的に"H"や"S"も入るではないですか!!!!
 geだから???とか
 思いつつも、感謝感謝でございます。
 年や月しか表示させる必要がなくとも、シリアル値との関係上
 日にちまですべて入れなくてはいけないのですね。
 あとは、合計に挑戦してみますので
 また、疑問点が生じたら書かせて頂きますので宜しくお願いします。

 まめしばさんは質問者ですよ〜       (ぷーのすけ)


 !( ̄∇ ̄ ;)

 ぷーのすけさま、ご指摘ありがとうございます。

 いつも、お世話になっておりますROUGEさまでしたね!
 大変失礼しました。
 ご教授ありがとうございます<(_ _)>


 衝突。。。 そのままUPします。

 >まめしばさま、ありがとうございました!!
正しくは、『まめしばさまのスレをリンクして下さったROUGEさま、ありがとうございました!!』
となりますね。www

 ROUGEさんのコメントがありますので、代わりに表示形式のライブラリのリンク貼っておきます。
http://www.excel.studio-kazu.jp/lib/e3g/e3g.html

 また、↓ は年と月を別々に入力する一例です。(指定年月の''1日''にする場合)
     A	         B	C	 D
 1  西暦を入力  月を入力 元号を表示  月を表示
 2  1950   	10      S25年      10月
 3  2000           1      H12年       1月
A2:B2のセルの表示形式は、『標準』
C2:C3   〃      『ge"年"』
D2:D3      〃      『m"月"』
A,B列に手入力し、C2セルに =DATE($A2,$B2,1) 該当範囲にコピー。
これで、1950年10月1日 という日付を認識できるシリアル値になります。
(sin)


 sinさま、ありがとうございました。

 お陰で、思う通りのデータ形式が出来ました!!

 ROUGEさまのライブラリもすごくすごく参考になりました。
 それで・・・
 最後の最後で
 =DATEDIF(B24,C25,"M")
 で、関数そのものは、上手く出来たのですが
 そこにxxヶ月の”ヶ月”を追加したく
 ユーザー定義で m”ヶ月”と設定したのですが
 実際の値は「37」なのに、「2ヶ月」とサンプル通りに表示されてしまいます。
 ユーザー定義で何も設定しないと、「37」と表示されるので、
 関数自体はOKなんです。
 このような事は初めてなので、わかりません。
 ご教授頂ければ幸いです。

 >=DATEDIF(B24,C25,"M")
 >で、関数そのものは、上手く出来たのですが
 とのことなので、、、
 =DATEDIF(B24,C25,"M")&"ヶ月"
 でいかがでしょう?
 
 (キリキ)(〃⌒o⌒)b


 >ユーザー定義で m”ヶ月”と設定したのですが
根本的に日付の表示形式と数値の表示形式について誤解があるようです。
 
「37」へ yyyy/m/d の表示形式指定すると、1900/2/6 と表示されます。
「1900/1/1を1としてカウントする日付連番」をエクセルではシリアル値と呼びます。
このとき、1900/1/1を1として37日目が1900/2/6にあたるのです。
 
m”ヶ月”と指定すると、yyyy/m/d の m の部分だけが表示されます。
だから「2」になります。
 
=DATEDIF(B24,C25,"M") で求めた数値「37」は?ヶ月を示す数値です。
この時点ですでに「1900/1/1を1としてカウントする日付連番」ではありません。
単なる「月数を示す数値」です。
したがって、表示形式は「数値」を現す書式記号を適用しなければなりません。
0"ヶ月"
と指定してみてください。
(みやほりん)(-_∂)b


 キリキさま、みやほりんさま、ありがとうございました。
 お陰で、よーやく意味が理解できました!!!

 キリキさまのは、勿論上手くできました(o^-^o) 

 みやほりんさまの、0"ヶ月"は、初めて知りました!
 丁寧なご説明のお陰で、とてもよく理解できました。
 「2ヶ月」表示になるのは、シリアル値との関係だったのですね!!
 なるほどです。
 0"ヶ月"は、そのまま関数を生かすみたいな感じなのですね。
 日付け関係では、とても有効ですね。

 皆様、大変助かりました\(^ ^)/ 
 今後ともご指導お願いします<(_ _)>


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.