- ベストアンサー
エクセル(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
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
簡単な数式でも大丈夫です。 10行まで日付が入る場合として考えてみました。 画像UPしましたのでご覧になってみてください。 NO.1は入力時の表示スタイル NO.2は数式を表示してあります。 B列にひとつ下の日付を参照して 違っていれば1を表示するようにしました。 5日間の表示はそれを足し算して出します。 B列では表としてまずいのであれば 影響の無い列を補助列として使用してください。 ご参考までに。
その他の回答 (5)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
あ、C2の式は間違い。途中で遊んだのを書いちゃった。 =NOT(ISERROR(VLOOKUP(A2,$A$1:A1,1,FALSE)))*1 でないと1にはなりませんね。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
日付が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) でオッケーです。
お礼
そういうカウントの方法があったんですね! 本当にありがとうございました!!
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。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)と正しくなりません。
お礼
ありがとうございます!無事に完成しました!
- happypoint
- ベストアンサー率36% (521/1422)
こんにちは。 最後の日付はMAX関数で何とかなります。
お礼
ありがとうございました!!
- taisuke555
- ベストアンサー率55% (132/236)
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日位はあると思うのですが? 土日は除くとかあるのですか?
補足
ありがとうございます! 5日間というのは 25、26、27、30、3日の5日分という意味なんです… これがまたややこしくしているんです…。
お礼
画像までUPして頂いて、とっても感謝しております! ほとんどコピーして、すぐ完成しました! ありがとうございました♪