• ベストアンサー

エクセル(2000)での日付について教えてください

5/25 ~~~~ 5/26 ~~~~ 5/26 ~~~~ 5/27 ~~~~ 5/30 ~~~~ 6/3 ~~~~ 【期間】 2003年5月25日~2003年6月3日( 5 )日間 というように上の日付を入れると、 自動的に下の【期間】が表示させるように したいのですが、方法はあるのでしょうか。 日付を書く行が10行あり、1行だけの時もあれば 10行埋まる時もあります。 私には期間の最初の日付しか入れることはできませんでした。 宜しくお願いいたしますm(__)m

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

  • ベストアンサー
  • tizzy
  • ベストアンサー率51% (115/224)
回答No.6

簡単な数式でも大丈夫です。 10行まで日付が入る場合として考えてみました。 画像UPしましたのでご覧になってみてください。 NO.1は入力時の表示スタイル NO.2は数式を表示してあります。 B列にひとつ下の日付を参照して 違っていれば1を表示するようにしました。 5日間の表示はそれを足し算して出します。 B列では表としてまずいのであれば 影響の無い列を補助列として使用してください。 ご参考までに。

参考URL:
http://www009.upp.so-net.ne.jp/tizzy_net/excel.html
xgirl
質問者

お礼

画像までUPして頂いて、とっても感謝しております! ほとんどコピーして、すぐ完成しました! ありがとうございました♪

その他の回答 (5)

回答No.5

あ、C2の式は間違い。途中で遊んだのを書いちゃった。 =NOT(ISERROR(VLOOKUP(A2,$A$1:A1,1,FALSE)))*1 でないと1にはなりませんね。

回答No.4

日付がA1:A10にあるとします。 > 2003年5月25日~2003年6月3日 この部分はある範囲内にある日付の一番小さいのと一番大きいのを取 り出せばいいんですから、基本的にmin()関数とmax()関数を使えばで きますね。一つのセルで片付けるなら =text(min(A1:A10), "yyyy年m月d日")&"~"&text(max(A1:A10), "yyyy年m月d日") ていう感じかな。 その後ろの実日数のカウントはですね、たとえばC列に C2 : =IF(ISERROR(VLOOKUP(A2,$A$1:A1,1,FALSE)),1,0)*A2 とやってC10までコピーすると重複した日付のところに1が立ちますから、 =count(A1:A10)-sum(C2:C10) でオッケーです。

xgirl
質問者

お礼

そういうカウントの方法があったんですね! 本当にありがとうございました!!

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 A1に「日付」と項目名があり、A2から日付を入力するとします。 期間を表示するセルに、 =IF(LEN(A2)=0,"",TEXT(MIN(A:A),"yyyy年m月d日") & "~" & TEXT(MAX(A:A),"yyyy年m月d日") & "(" & COUNTA(A:A)-1 & ")日間") です。 ただし、日数は単に日付を入力した行数で表していますので、質問の例のように同じ日付が複数ある(5/26)と正しくなりません。

xgirl
質問者

お礼

ありがとうございます!無事に完成しました!

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

こんにちは。 最後の日付はMAX関数で何とかなります。

xgirl
質問者

お礼

ありがとうございました!!

回答No.1

A1~A10までが日付を入力する場所として、 =TEXT(MIN(A1:A10),"yyyy/mm/dd")&"~"&TEXT(MAX(A1:A10),"yyyy/mm/dd")&TEXT(MAX(A1:A10)-MIN(A1:A10)+1," (##)日間") のようなかんじでどうでしょう? ちょっと疑問なのですが、(5)日間の5はどのような計算なのでしょうか? 8日か9日位はあると思うのですが? 土日は除くとかあるのですか?

xgirl
質問者

補足

ありがとうございます! 5日間というのは 25、26、27、30、3日の5日分という意味なんです… これがまたややこしくしているんです…。

関連するQ&A