月数計算のエクセル関数について

このQ&Aのポイント
  • エクセル上で請求書の作成を行う際、請求対象月を各請求書ごとに記載する必要があります。
  • 現在の月とそこから+-する数字だけで何月分かを簡単に計算する数式を教えてください。
  • IF関数を使用して年の変更による計算のバグを修正しようとしましたが、うまくいきませんでした。
回答を見る
  • ベストアンサー

月数計算

 請求書の作成をエクセルで行おうとしているのですが、請求対象月を各請求書ごとに記載しなければなりません。現状では月が変わるとある一箇所だけ月数を変えてその月から+1したり-1したりしているのですが、年が変わってしまい12月分の請求書を作らなくてはならないのに-1をすると0月分とでてしまいます。12月のときも+1したら13月とでたところを手作業で修正しました。そのようなことがおきないように下記のようなIF関数を書いたのですが、FALSEとでてしまいうまくいきません。 年をこせる関数を現在の月とそこから+-するための数字だけで何月分と簡単にでてくるような数式ってどうやって書けばいいのか教えてください。 =IF(A9<=0,A9+11,IF(0<=$A$9<=12,A9,IF(13<=CZ9,CZ9-12)))

  • ttaro
  • お礼率19% (19/96)

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

No.1です。 > =DATE(YEAR(A1),MONTH(A1)+B1(⇒各クライアントごとの請求書発行月からの差異の間隔をあらわす数字1月発行で12月が対象月だった場合、-1と記載し、 > 逆に1月発行で請求対象月が3月だった場合は+2と記載),1)を入れてみたのですがうまくいかないのですがこの場合はどうしたらよいのでしょうか? 日付計算をする時にはA1の請求書発行月が、シリアル値になっている必要が有ります。 A1に請求書発行月(例:2009/01/01 の様に日付までちゃんと入った日付であること。1日で有る必要は無し) B1に発行月からの差異(例:-1 あるいは 2) =DATE(YEAR(A1),MONTH(A1)+B1,1) これで、2008/12/01 あるいは 2009/3/1 の日付を得る事ができます。 これでどうでしょう。

その他の回答 (3)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

次の関数で何ヶ月か前またはあとの月の最終日を求められます。 =EOMONTH(基準日,前またはあとの月数) で、このセルの書式をユーザー設定で「m」にしておけば、月を表示します。 今日から1ヶ月前の月の最終日 =EOMONTH(TODAY(),-1)→2008/12/31→12 今日から1ヵ月後のつきの最終日 =EOMONTH(TODAY(),1)→2009/2/28→2 基準日はセル参照もできます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

請求書を出す日にちにもよりますが、先月分の請求書を書くために 月の表示を先月にしたいということだと解釈して回答させていただきます。 一つの案ですが・・・ 月を表示させるセルに=TODAY()-28 とすれば、先月の月が表示されると思います。 (2月のことを考えて、-28としてみました) ただし、この場合29日以降に請求書を作成されますと、今月の月になりますので ご注意を! 尚、セルの表示形式はユーザー定義からm"月"を選び、"月"を削除して「m」だけにすれば月の数字だけが表示されます。 見当違いの回答なら、軽く読み流してください。m(__)m

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

ちょっとイメージがわかないので外しているかもしれませんが、A1に基準となる現在の日付が入っていて、その前の月を求めたいのでしたら。 =DATE(YEAR(A1),MONTH(A1)-1,1) これで良いかと。

ttaro
質問者

補足

ご回答頂き本当にありがとうございます。 説明の仕方が悪かったので、もう少し説明をさせていただくとエクセルで請求書のリストを作成していて、1列1クライアントというようになっています。 そして、マクロが組んであり1枚1枚エクセルシート内のボタンを押すと別シートに請求書1枚のデータがでてきて、印刷をするというような仕組みになっております。 そこで問題となるのが、請求書の発行日付が同じでも、請求をする対象月がクライアントごとに違うので、 =DATE(YEAR(A1),MONTH(A1)+B1(⇒各クライアントごとの請求書発行月からの差異の間隔をあらわす数字1月発行で12月が対象月だった場合、-1と記載し、逆に1月発行で請求対象月が3月だった場合は+2と記載),1)を入れてみたのですがうまくいかないのですがこの場合はどうしたらよいのでしょうか? 何度も申し訳有りません。

関連するQ&A

  • エクセルで月数の計算2

    例えばA1に開始日、A2に終了日、A3に数式を設定して月数を計算します。月数は暦に従って計算し、ひと月未満の端数はひと月として計算します。この場合、初日を算入(計算の対象に入れる)して計算する場合、下記の数式のどこを修正すべきでしょうか? =IF(DATEDIF(A1,A2,"MD")=0,DATEDIF(A1,A2,"M"),DATEDIF(A1,A2,"M")+1)

  • ふたつのセルに年月日を入力するとその間の月数・日数を表示

    Excelです。 例えば、A1セルに2003年10月1日と入力し、A2セルに2004年11月10日と入力したとします。 このとき、A3セルにこの間の日数を表示させるにはどのような関数を使って計算式を入れればよいでしょうか? さらにこのA3セルを参照し、月数を計算させ、A4セルに(1~∞)表示させるにはどうすればよいでしょうか?ただし、このとき30日未満は何らかのメッセージを表示させて月数は表示させないようにしたいです(これはIF関数を使うのでしょうか?)

  • 月数を算出する計算方法で、幾つか質問です。

    ローンの返済計画を作ろうと思い、返済月数を出そうと思いまして、以下のとおり計算式を作ってみましたがうまくいきません。何かよい手はないでしょうか? わかったら教えてください。      A           B 1 平成18年8月31日 =IF(A1="",DATEDIF(A2,A3,"M")+1,DATEDIF(A1,A3,"M")) 2 平成18年9月30日 3 平成28年4月30日 B1の答えは本来56回となるべきところですが、なぜか55回となってしまいます。 お分かりになりましたら、よろしくお願いします。

  • 年金の月数の計算について教えてください。

    年金の月数の計算について教えてください。 (以下、仮定の内容としてお聞きします。) ↓(過去、年金保険料を支払っておらず、平成22年12月~から支払いをスタートすると仮定します。) 1、昭和50年1月12日生まれ(現在36歳)→平成47年1月12日(60歳) 2、上記で290ヶ月+24ヶ月(2年さかのぼって支払える分~)=314か月 3、平成47年分は年度(3月まで~ととらえるので)+2ヶ月 4、314+2=316ヶ月 よって、300ヶ月を満たすと思われます。 (また、この場合16ヶ月分は掛け捨てなると思うのですが支払わないで済む方法はありますか?) 上記のような理解であっていますでしょうか? 間違いがあればご指摘いただけないでしょうか。よろしくお願いします。

  • Excelで在職年月数が表示されるように設定したい

    Excelで質問です。 ある日付から年数と月数を出したいのですがうまくいきません。 例えば、セルA1に入社した日付(例えば2000年4月)があり、B1に○年○ヶ月(例えば7年1ヶ月)と在職年月数が表示されるように設定したいのですが、うまくいきません。 DATEDIF関数を使ったら年数は表示されても月数は出ません。 何か良い方法はあるのでしょうか?

  • エクセル関数についての質問です2

    本日エクセル関数の 『最右欄の数値を表示したい』と質問したものです。 ”エクセルを使用している中での質問です。 任意の欄のある列の最右欄の数値を帰したいと思い =IF(COUNT(C3:H3),LOOKUP(MAX(C3:H3)+1,C3:H3),"") という式を見つけました。 この場合、対象範囲に打ち込んだ数値の場合は表記されますが 数式を入れてある場合は表記されませんでした。 対象範囲が数式の場合でも表記される方法を教えて頂きたいのですが。 何卒宜しくお願い申し上げます。 当方64歳のエクセル初心者です。” という質問に対し ”一番簡単な方法は,あなたが埋めた数式を改良し,出すべき数字が無いときは「""」を計算する数式に修正します。 ""は数値ではないので,ご質問の数式はスルーしてくれて一番右の数字を引っ張ってきてくれます。” というご回答を頂戴しました。 ところが、初心者のため 『出すべき数字が無いときは「""」を計算する数式に修正します』 の部分についてどこをどのように修正すればよいかわかりません。 やりたいことは 添付画像のA欄にB欄の当月請求金額の数字を反映したいのですが、月によっては数字が無いときがあり数字が有るときの分だけを反映させたいと思っています。 改めて御指導をお願いします。

  • IF関数で困ってます。

    すみません。 IF関数でお教えください。 IF関数を使用したのですが、ある数式を論理式に入れ、 TRUEの時、(ある数式)=14 FALSEの時、(ある数式)=21 と表示され、実際そのセルはTRUEだったのですが、 セルに現れた数字は「35」でした。 なぜ、このような事が起こるのでしょうか? 素人ゆえ、ご迷惑をお掛けしております。 どなたかお教えください。 よろしくお願い致します。

  • エクセルについて

    エクセルでこのような場合の数式を教えてください。 A1、A2に入るどちらか大きい数字をとり、またその数字は上限10以下という数式をA3に入れる場合どのような数式になりますか? IF関数でIF(A1>A2,A1,A2)こんな数式を作ったのですが、上限10以下というのがわかりません。この数式も間違っているような気がするのですが・・・。 よろしくお願いします。

  • エクセルの関数の貼り付け方法について

    エクセル2003を使用して関数計算表を作成しています。 IF関数の中にAND関数を使用して数式を作ったのですが そのままコピーしてしまうと変換してほしい数字が変換されません 下記に詳細を書きました エクセルのシート1にこのような基本形の数式があるとします =IF(AND(T4=2,D9=77),F8,"") 次にこの数式をシート2にコピーして =IF(AND(T6=2,D11=77),F10,"") というふうに変換したいのですが 現状ではコピーして貼り付けが終わった状態から 手で数字を一文字ずつ消して打ち直していますが膨大なデータ量でして 大変苦労をしています 何とか皆様のお知恵をお借りしたいと思いまして質問させていただきました よきアドバイス宜しくお願いいたします すみません。補足をします。 シート1のセルA1の数式がこれです =IF(AND(T4=2,D9=77),F8,"") このシート1のセルA1の数式 =IF(AND(T4=2,D9=77),F8,"")を シート2のセルA1にコピーして =IF(AND(T6=2,D11=77),F10,"") という数式にしたいのです 現状ではシート2のセルA1に貼り付けが終わった =IF(AND(T4=2,D9=77),F8,"")を T4→T6へ、D9→D11へ、F8→F10へ一つ一つ手入力で 修正しております。膨大なデータ量です(涙) お願いします

  • 経過月数のわかる関数を教えて下さい

    エクセルで経過した月数が判る表を作りたいのですが自分のレベルではできません  例えば・・・・    A1       B1        C1 S63年10月   H元年9月    (経過月数) H元年 10月   H2年4月       〃 H2年  5月   H3年9月       〃   よろしくお願いします。

専門家に質問してみよう