• ベストアンサー

期間内の1月1日を数えたい

一度通常の質問に出したのですがわからなかったのでこちらで質問させてください。 エクセルで 任意の開始日 と 任意の終了日 が入力されています。  その期間内で 本日現在で 任意の日たとえば 1月1日が何回あったかの 回数を返してくれる関数を組たいのですが教えていただけますか。 開始日、終了日、本日、任意の日(年はなく月日の指定だけです。文字列の扱いなんでしょうか)の引数かと思うのですが、よろしくお願いいたします。    

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

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.3

開始年月日と,(終了年月日または本日の早い方) の間にあるm月d日の数でいいんですよね? ●入力データ TODAY():今日の年月日 (シリアル値) ymd1:開始年月日 (シリアル値) ymd2:終了年月日 (シリアル値) m:指定の月 d:指定の日 ●途中結果 ymd3=MIN(ymd2, TODAY()):終了年月日と今日の早い方 … 実際の終了年月日 y1=YEAR(ymd1):開始年 y3=YEAR(ymd3):終了年 ymd4=DATE(y1, m, d):開始年の指定月日 ymd5=DATE(y3, m, d):終了年の指定月日 開始年と終了年の間 (両年を除く) のm月d日の回数 n1=IF(y3 > y1, y3 - y1 - 1, 0) ymd4 が範囲に含まれるならば1回,そうでなければ0回と数える. n2=IF(AND(ymd1 <= ymd4, ymd4 <= ymd3), 1, 0) ymd5 が範囲に含まれ,かつ y3≠y1 ならば1回,そうでなければ0回と数える. n3=IF(AND(y3 <> y1, ymd1 <= ymd5, ymd5 <= ymd3), 1, 0) ●最終結果 したがって ymd1 ~ ymd3 の間のm月d日の回数は, n=n1+n2+n3 でどうでしょうか?

kiaitokonjyou
質問者

お礼

ありがとうございます。 早速やってみます。 まだ理解できてませんががんばります。

kiaitokonjyou
質問者

補足

すごいです。 できました。 すっきりしました。 税金の関係で資産の保有期間の関係で 1/1を何回数えたかで税額や扱いが違うものですから 助かりました。 本当にありがとうございます。

その他の回答 (3)

  • noocyte
  • ベストアンサー率58% (171/291)
回答No.4

#3 です. 今気付きましたが,m月d日=2月29日だとダメですので念のため.(笑)

kiaitokonjyou
質問者

お礼

おそれいります。 当方まったく気づいておりません でした。 感涙笑謝

  • oji32
  • ベストアンサー率21% (38/180)
回答No.2

期間内の1月1日の数を数える →期間は何年かを数える と言う風に考えられたらいかがですか?

kiaitokonjyou
質問者

お礼

シリアル値の引き算で、その期間が何ヵ年何ヶ月何日で、表示で何年を何回とすることは可能なんですが、特定期日が何回あったかを数えたかったので、ちょっと違いが出る場合があります。 NO3の方の方法でやってみます。 ありがとうございました。

回答No.1

年がないのにどうやって計算すると言うのでしょうか?

kiaitokonjyou
質問者

お礼

ありがとうございます。 そうなんです、年がないのでわからなかったのですが NO3の方の方法でやってみます。

関連するQ&A