アプリ版:「スタンプのみでお礼する」機能のリリースについて

2つの期間の重複する日数(月数)を計算するには?

タイトルのとおりなのですが、
下記のようなテーブルがあります。

 品名    開始      終了
きゃべつ  2010/4/1    2010/6/1
レタス   2010/3/10    2010/3/15
すいか   2010/4/12    2010/10/1
トマト   2010/3/10    2010/4/10

下記のように、これとは別にフォームで任意の期間を指定すると重複した期間が出るようなクエリを作りたいのですが、どのようにすれば良いでしょうか?

フォーム 調査期間 2010/4/10~2010/4/15

 品名  重複期間  
きゃべつ  6   
レタス   0    
すいか   4    
トマト   1

良い方法をご存じの方がいらっしゃいましたら是非ともご教示下さいませ。

A 回答 (4件)

終了期間の小さな方-開始期間の大きな方 が、負の値になったら重複無し


0以上の場合は+1した値が重複日数
「2つの期間の重複する日数(月数)を計算す」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。m(__)m
実は私の書き忘れでACCESS2000に関する質問だったのです。
ACCESSではmin,max関数がちょっと違うので(フィールドの最小、最大を返します)
このやり方を参考にして、IF(ACCESSではIIFですが^^)を使って上手く欲しかった結果が
出るようになりました!
本当にありがとうございました。m(__)m
ここの「教えて」は久しぶりだったのですが、画像も添付できるようになったのですね。
とても解りやすくて助かりました。^^

お礼日時:2010/04/25 10:15

添付図参照


F2: =MAX(B2,F$1)
G2: =MIN(C2,G$1)
D2: =MAX(0,G2-F2+1)
「2つの期間の重複する日数(月数)を計算す」の回答画像4
    • good
    • 0
この回答へのお礼

回答ありがとうございます。m(__)m
実は私の書き忘れでACCESS2000に関する質問だったのです。
ACCESSではmin,max関数がちょっと違うので(フィールドの最小、最大を返します)
このやり方を参考にして、IF(ACCESSではIIFですが^^)を使って上手く欲しかった結果が
出るようになりました!
本当にありがとうございました。m(__)m

お礼日時:2010/04/25 10:11

こんにちは!


一例です。

↓の画像のように作業用の列を使っています。
作業列H2セルに
=IF(COUNTBLANK($G$2:$G$3),"",IF($G$2+ROW(A1)-1>$G$3,"",$G$2+ROW(A1)-1))

という数式を入れ、オートフィルでずぃ~~~!っと下へコピーします。

これで開始日をG2・終了日をG3セルに入力すると
その期間の日付がH列に表示されますので、このデータを利用します。

結果のD2セルに
=IF(COUNTBLANK(B2:C2),"",SUMPRODUCT(($H$2:$H$366>=B2)*($H$2:$H$366<=C2)))

という数式を入れ、オートフィルで下へコピーすると
画像のような感じになります。

以上、参考になればよいのですが
他に良い方法があれば読み流してくださいね。m(__)m
「2つの期間の重複する日数(月数)を計算す」の回答画像3
    • good
    • 0
この回答へのお礼

回答ありがとうございます。m(__)m
実は私の書き忘れでACCESS2000に関する質問だったのです。ごめんなさい。m(__)m
普段自分がEXCELでは使わないsumproduct、rowとかの関数の勉強になりました!^^
本当にありがとうございました。m(__)m

お礼日時:2010/04/25 10:27

IIF文で場合分けをして、それぞれの場合を正直に式で書くしかありません。



調査期間を■、品目期間を□にすると

_______■■■■_______
__□□□□____________ 0日

_______■■■■_______
_____□□□__________ 1日

_______■■■■_______
_____□□□□_________ 2日

_______■■■■_______
_____□□□□□□_______ 4日

_______■■■■_______
_____□□□□□□□□_____ 4日

_______■■■■_______
_______□__________ 1日

_______■■■■_______
_______□□_________ 2日

_______■■■■_______
_______□□□□_______ 4日

_______■■■■_______
_______□□□□□□_____ 4日

_______■■■■_______
________□□________ 2日

_______■■■■_______
_________□□_______ 2日

_______■■■■_______
_________□□□□_____ 2日

_______■■■■_______
__________□_______ 1日

_______■■■■_______
__________□□□_____ 1日

_______■■■■_______
____________□□□□__ 0日

と言うパターンになります。

このパターンをIIF文で場合分けして、それぞれの場合で「この日付からこの日付の日数を計算する式」を書かなければなりません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。m(__)m
悩んだあげく結局IIF文を使用することになりました。比較対象が2つだったのでよかったです。^^;
それでも結構長い条件式になりました。
本当にありがとうございました。m(__)m

お礼日時:2010/04/25 10:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A