• ベストアンサー

書式設定が日付のもの同士を計算させたい(遅延日数を表示させたい)

こんにちは。今、お仕事でこのようなことに直面しております。使用しているものはExcel2000です。    A  B 1 予定 6月8日   ←入力されている情報 2 確定 6月18日   ←入力されている情報 3 遅延日数 10日    ←セルB3 の結果を自動計算して出力出来るか? という問題です。 例題のようにたかだか10日くらいのものでしたら問題ないですが、下記のような可能性があるため、考慮しなくてはならない事柄があります。 ●西暦表示はさせずに ○月×日 としたいが、年月をまたがる計算も有り得ること。  (EX: B1セル→2004年12月25日 B2セル→2005年4月8日) ●セルB3の回答が32日以上の場合は ○ヶ月×日 というように出力したい。 書式が数値ではなく日付なのだから計算なんて出来るのかな?なんて思いつつデータの量が1sheetに6000件あります。さすがに自動計算させたくて…。 お手すきのお方、いらっしゃいましたら宜しくご教授くださいませ。

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

  • ベストアンサー
  • na_kirajp
  • ベストアンサー率43% (33/76)
回答No.3

他の方の回答されていますが、 別案で、 B3には"=IF(B2-B1>31,INT((B2-B1)/31)& "ヶ月" & MOD(B2-B1,31) & "日",B2-B1 & "日")"を埋める。 実は、他の方と値が異なります。 年を越える例の場合、日数は104日になります。 dateifを使うと、3ヶ月14日になりますが、 上記の計算式では、3ヶ月11日です。 (1ヶ月を30とするか?の違いかと思われます) どちらの値を期待されているのか次第ですが・・・

choko_late
質問者

お礼

早速のご回答、有難うございました。これもOKです! ただおっしゃっていた通り、一ヶ月を30日とするか31日とするかで異なりますよね。 相談出来る上司が本日は退社しましたので、この部分は来週早々に相談して決定します。 #でも。。。一般的には30日でカウントするものなのかな?それとも31日?

その他の回答 (5)

  • na_kirajp
  • ベストアンサー率43% (33/76)
回答No.6

#3です。先ほどの回答で27と記載しましたが28日です。 予定を6/8、確定には3/25で計算した結果が”9Kヶ月20日”とありますが、9ヶ月17日又は9ヶ月11日では有りませんか? この場合は、日数は290日になりますので、1ヶ月を31日換算すれば、9ヶ月と残りの日付が11日になります。 但し、DateIFを用いると、6月から3月までの各月の末日が31日になっていない日を数えると6日になり、dateIFでは+6日の17日になります。 もっと分かりやすい例では、 12/25から3/25にした場合、日数は90日になり、1ヶ月31日換算すると2ヶ月と28日になります。 DATEIFでは、2月で28日なので、3ヶ月0日になります。 これで通じるかな?

choko_late
質問者

お礼

おはようございます。昨日に引き続き、有難うございました。 そして、おっしゃる通りで9ヶ月20日というのは私の間違えでした^^; 実はわが社ではネットの使用が禁止されているんですが、どうしても今回はご教授戴きたかったのでひっそり見つからないようにこちらのPAGEにアクセスしてました(笑) それとずっと研修続きで仕事も溜まっていて気持ち的にも焦っていて、その結果、ミスをしたんだと思います(汗)

  • na_kirajp
  • ベストアンサー率43% (33/76)
回答No.5

#3です。 30日と書きましたが、誤りです。 DATEIFでは、2ヶ月目は、27日で3ヶ月目になります。 提示の例では2005/3/25で差異が発生します。

choko_late
質問者

お礼

度々恐縮です。今、みなさんから頂いたデータをいじっているのですが少しずつ、どうしよう…とか、あれ?というような部分が出てきていたり…。私の入力ミスという事も多分に考えられますが^^; で、ご提示頂きました件を今、実証してみました。 予定を 6/8 と入力(中身は2004/06/08)、確定には 3/25(中身は2005/3/25) としたところの計算結果は9Kヶ月20日となりました。。。 ぅーん。何故?というかこれは先程のご説明とおり、仕方の無いこと?というか仕様なのですか?(そんなわけ無い…?かな?)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

#2のmshr1962です。 一つだけ訂正します。 B1>B2の状態だとエラーします。 (B2が未入力や年度、月の入れ間違いで大小が逆の場合) =IF(B1>B2,"",IF(B2-B1>31,DATEDIF(B1,B2,"m")&"ヶ月"&DATEDIF(B1,B2,"md"),B2-B1)&"日") としてください。

choko_late
質問者

お礼

早速、またまたのご親切なアドバイス、有難うございました。そして私は全く、このような事態も有り得ることを想定した式を考えようともしておりませんでした。有難うございます!めちゃくちゃ助かりました。またこれで一つ、お勉強になった^^;(もっと知識をつけなきゃ!って感じですよね(恥))

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

日付形式なら =B2-B1 で出ませんか?最後に表示形式を変えればOK >セルB3の回答が32日以上の場合は ○ヶ月×日 というように出力したい。 なら =IF(B2-B1>31,DATEDIF(B1,B2,"m")&"ヶ月"&DATEDIF(B1,B2,"md"),B2-B1)&"日" ただし文字になるのでこのセルを計算には使えません。

choko_late
質問者

お礼

早速のご回答、有難うございました。単純に =B2-B1 で実行してみたのですが残念な結果でした。。。。 それと別の式を記載してみましたが、これならOKでした。有難うございました!!

noname#176215
noname#176215
回答No.1

DATEDIF関数を使って下さい。この関数は関数ウィザード からは指定できませんのでセルに直接入力して下さい。 =IF(DATEDIF(B1,B2,"M"),DATEDIF(B1,B2,"M")& "ヶ月","")&DATEDIF(B1,B2,"MD")&"日" もちろん文字列であって シリアル値ではありません。

choko_late
質問者

お礼

こんにちは。早速のご回答、有難うございました。 今、ご教授いただきましたとおりに作業をしましたらOKでした。有難うございました! (それにしても…知識の無さにもっと頑張らないと。。。と常々感じました^^;)

関連するQ&A

  • 日付の書式設定について

    エクセルの「セルの書式設定」で日付をユーザ設定の「m"月"d"日"」にしているのですが、入力したセルの表示は「4月8日」のように設定通り表示されていても、実際のセルの内容を見てみると「2002年4月8日」のように勝手に西暦がついてしまいます。この西暦を勝手につけないような設定の仕方があれば教えていただけないでしょうか? また、同じ日付設定のところで、「*2001/3/14と2001/3/14」のように先頭にアスタリスクがつく設定とそうでないものとの違いがよくわかりません この点についても教えて頂ければ幸いです

  • 自動で日付、曜日を表示した

    エクセルで、例えば A1セルに西暦、B1セルに月を入力すれば A3セルから順に下に日付(1日 2日 3日・・・) B3セルから順に下に曜日(例えば今月なら金 土 日) というように自動的に表示できるようにしたいのですか 可能でしょうか? マクロを使えばいいのでしょうか? 可能ならやり方を教えてください。 よろしくお願いします!

  • 日付の表示

    こちらにはいつもお世話になっております。 エクセルのデータで 1つのセルの中に日付が西暦で 「20050228」と入っています。 これを別のセルに 「平成17年2月」と表示したいのですが、 どのような式を入れたらよいでしょうか。 (別のセルには年月だけで、日にちは入れません) 良い方法があれば教えてください。

  • エクセルで日数を計算したいんですが、

    エクセルで日数を計算したいんですが、 「月」と「日」を別のセルに入れています。 A1セル=月 B1セル=日 (例) A1セル B1セル 4月     10日 5月     13日 この4月10日から5月13日の間の日数を数えたいのですが セルが分かれていても計算することって可能ですか? 初歩的な質問で恐縮ですが教えて下さい! よろしくお願いします!

  • エクセルで日数計算

    エクセル2003で、 A1に「5月10日」 B1に「8月3日」 と入力したとして C1に5月10日~8月3日までの日数(両端入れ) で自動的に計算してくれる関数ってありますか? よろしくお願いします。

  • 3ヵ月後の日付を自動計算しようと思っているのですが、上手くいかなかった

    3ヵ月後の日付を自動計算しようと思っているのですが、上手くいかなかったのでご質問させていただきます。 3ヵ月後の日付をエクセルで自動的に計算させようと思って、いろいろ試行錯誤しているのですが、上手くいかなかったので、ここに質問させていただきました。よろしくお願いいたします。 で、単純に3ヵ月後を計算させようと思い、ExcelのWorkday関数等を利用して、以下のような式を考えました。 =WORKDAY(DATE(YEAR(A1),MONTH(A1)+3,DAY(A1)-1),1,B1:B38) ここで、セルA1には基準日を入力し、セルB1からB38には国民の祝日を入力しています。 で、これでほとんどの場合で上手くいったんですが、例えば明日8月31日を基準日とした場合、3ヵ月後を、基準日が月末なので3ヵ月後も月末で揃える格好で日付を指定したいと考えており、エクセル関数の組み合わせでとまってしまいました。 つまり8月31日を基準日としたような場合は、求める日付として11月30日(11月30日が土日や祝日の場合は、更にさかのぼって11月29日だったり、11月28日が求める日付)となるようにしたいと考えております。 どなたか、お知恵を拝借できればと思っております。よろしくお願いいたします。

  • エクセルの日付表示の書式設定

    こんにちはお世話になっております 教えていただきたいのは、エクセルの日付表示についてです。 条件としてはセルに日付を入力したときに以下のように表示したいです。 8/1と入力したとき  2006年 8月  1日 8/13と入力したとき 2006年 8月13日 10/3と入力したとき 2006年10月 3日 様はセルの中で数字が1桁でも2桁でも位置が会うようにしたいです。 配置で均等とかにしてもずれてしまうので、何か言い方法があればと思うのですが、教えてください なお、年月日になるようにするのはセルの書式設定でユーザー定義で[DBNum3]ggge"年"m"月"d"日"の設定で表示させています。 mmやddにしてしまうと08などになってしまうので、そうではなく 8と表示させたいです。 分かりにくい説明ですが、教えてください。

  • エクセルで日数計算

    エクセルで例えば、セルA1に「6月1日」、A2に「6月10日」と入力しています。 セルA3にかかった日数(この場合、6月1日から10日までなので、「10」)を自動的に入力されるようにしたいのですが、どのようにすればそのようにできますか??? 詳しい方教えてください。

  • 入力した日付から指定の日付を表示

    Excel計算式を教えて下さい。 目的)A1セルに入力した日付を元に、B1セルに指定の日付(毎月20日締)を表示したい。 ルール例) A1に 3月21日~4月20日の間の日付を入力すると、B1に4月20日を表示。 値の例) A1:2013/2/21→B1:2013/3/20 A1:2013/2/27→B1:2013/3/20 A1:2013/3/15→B1:2013/3/20 A1:2013/3/20→B1:2013/3/20 A1:2013/3/21→B1:2013/4/20 A1:2013/3/28→B1:2013/4/20 A1:2013/4/8→B1:2013/4/20 A1:2013/4/20→B1:2013/4/20 上記を実現する計算式を教えて下さい。

  • 入力した日付から指定の日付を表示

    Excel計算式を教えて下さい。 目的)A1セルに入力した日付を元に、B1セルに指定の日付(毎月20日締)を表示したい。 ルール例) A1に 3月1日(月初)~3月31日(月末)の間の日付を入力すると、B1に4月20日を表示。 値の例) A1:2013/3/1→B1:2013/4/20 A1:2013/3/15→B1:2013/4/20 A1:2013/3/31→B1:2013/4/20 A1:2013/4/1→B1:2013/5/20 A1:2013/4/20→B1:2013/5/20 A1:2013/4/30→B1:2013/5/20 上記を実現する計算式を教えて下さい。

専門家に質問してみよう