• ベストアンサー

エクセルでカード支払い日の設定

エクセルで家計簿を作っています。クレジットカードで買い物をした日を入力すると、支払い日のセルに日にちが入るような関数を設定したいのですが、できますか?たとえば、5月5日に買うと、支払日は「5日締め、翌15日払い。15日が土日祝日なら、前営業日」の条件にかなった日が表示されるように。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

何でも(エクセル)関数のクセに陥らないこと。 本件は関数では難しいでしょう。 (1)カード会社により締切日と口座振替美が違うかもしれない。 http://www.cardservice.co.jp/cardpayment.html (2)銀行休業日を割り出すのは難しい。年毎に変わる休日もある。 (3)カード会社により、引き落とし日は    (A)銀行休日の場合翌営業日    (B)質問者の言う、前営業日は少数派? などの事情がある。 VBAでやっても難しい。 苦労する割りに、部分的な個人のニーズでは割りにあわない。人間が調べて書き込むほうが良い。

oboburi
質問者

お礼

なるほど、その通りですね。imogassiさんのおっしゃるような理由もあるし、買い物をした日が締め日の前でも、お店での計上が遅れて、請求が翌月になることは、よくありますものね。 色々考えましたが、購入日と、支払い日のほかに、支払い予定日を設け、購入日を入力すると、支払い予定日に、ほかの方の教えてくださった関数で、大まかな引き落とし日が、自動で入力されるように設定し、実際に請求書が来たら、支払い日を手入力することにしました。こうすれば、とりあえず今月お金がいくら無くなるか、の目処は立ちます。 貴重なアドバイスをありがとうございました。

その他の回答 (5)

noname#140971
noname#140971
回答No.6

補足: ゴミ回答でしたのでキャンセルします。(月計算の件) ただ、シート2に<決済日一覧表>を作成すれば表引きで簡単・確実に行えると思います。

oboburi
質問者

お礼

Husky2007さん、丁寧なお返事をありがとうございました。 ただ、色々考えましたが、買い物をした日が締め日の前でも、お店での計上が遅れて、請求が翌月になることがよくあることに気付きました。そこで、Husky2007さんのおっしゃるようにシート2にカード別決済日一覧表を作ってほかの方の教えてくださった関数を記入し、データシートには購入日と、支払い日のほかに、支払い予定日を設けシート2の関数を引っ張ってくるよう設定し、、購入日を入力すると、支払い予定日に、大まかな引き落とし日が、自動で入力されるようにし、実際に請求書が来たら、支払い日を手入力することにしました。こうすれば、とりあえず今後お金がいくら無くなるか、の目処は立ちます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

5月4日に購入→5月5日締め→5月15日支払い 5月6日に購入→6月5日締め→6月15日支払い (支払日が土日祝日なら前営業日が支払い) でよいですか? A1に購入日が入力され、Sheet2!A1:A3に祝日(2008/2/11、2008/3/20など)が入力されているとき =IF(DAY(A1)<6,WORKDAY(WORKDAY(DATE(YEAR(A1),MONTH(A1),15),1,Sheet2!A1:A3),-1,Sheet2!A1:A3),WORKDAY(WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,15),1,Sheet2!A1:A3),-1,Sheet2!A1:A3)) で支払日が出せると思います。 WORKDAY関数は「営業日」を計算する関数です。翌月の15日の「次の営業日」をいったん求め、その前の営業日を求めることにより希望の営業日が算出できます。 Sheet2!A1:A3の範囲は実際に入力した「祝日」に合わせて変更してください

oboburi
質問者

お礼

ZAP35さん、貴重なアドバイスをありがとうございました。 ただ、色々考えましたが、買い物をした日が締め日の前でも、お店での計上が遅れて、請求が翌月になることがよくあることに気付きました。そこで、データシートには購入日と、支払い日のほかに、支払い予定日を設け、zap35さんの教えてくださった関数を使い、購入日を入力すると、支払い予定日に、大まかな引き落とし日が、自動で入力されるようにし、実際に請求書が来たら、支払い日を手入力することにしました。こうすれば、とりあえず今後お金がいくら無くなるか、の目処は立ちます。貧乏です・・・

  • tmsnk
  • ベストアンサー率33% (1/3)
回答No.3

単純に支払日の計算は日付関数で可能ですが、営業日換算となると「銀行カレンダー」が必要になります。 下記のURLを参考にしてみて下さい カレンダーを作成する場合  kt関数アドイン  http://www.h3.dion.ne.jp/~sakatsu/ktfunc_main.htm VBAで判定ロジックを作成する場合  祝日判定用マクロ[関数]  http://www.h3.dion.ne.jp/~sakatsu/holiday_logic.htm アドイン関数を使用する場合  銀行カレンダー関数のExcelアドイン   http://www.loadsystem.net/excel/BankCalAddin.htm

oboburi
質問者

お礼

営業日を知るのはとても複雑な条件を考慮しなければできないことだったんですね!!じっくり勉強させていただきます。ありがとうございました。

noname#140971
noname#140971
回答No.2

大変、A1の曜日を調べても無駄でした。 計算結果を調べるように変更されて下さい。

noname#140971
noname#140971
回答No.1

Q、できますか? A、簡単にはできません。が、毎年作りかえるならば比較的簡単。 2008/2/2______2008/2/15 2008/2/10____2008/3/14 =DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>4),15-(WEEKDAY(A1,3)=6)-(WEEKDAY(A1,3)=7)*2) 一見、成功しているようですが<祝日>が考慮されていません。 そこんとこをどうするかです。 この正答は、営業日カレンダーを設定するということでしょう。 しかし、よくよく考えれば、そういう月は9月だけです。 そういうことで、8月5日から9月4日であれば2008/09/12とするのが一番簡単でしょう。

関連するQ&A