Range1 は 2021 年 6 月 1 日~2021 年 11 月 30 日、Range2 は 2021 年 8 月 15 日~2022 年 3 月 1 日です (Range2 は他の日付範囲でもかまいません)。Range2 の何ヶ月が Range1 と交差するかを確認したいと思います。11 月、10 月、9 月、および 8 月の一部が Range2 と交差するため、答えは 4 になります。また、私の問題では、たとえ 3 か月 3 日だったとしても、4 か月とします。ただし、月の最初の日を 1 か月としてカウントしていません。
たとえば、範囲 1 が 2021 年 6 月 1 日 - 2021 年 11 月 1 日で、範囲 2 が 2021 年 2 月 1 日 - 2021 年 10 月 1 日の場合、6 月、7 月、8 月、9 月が範囲 1 と交差するため、答えは 4 になります。2021 年 10 月 1 日はカウントしていないため、答えは 5 にはならないことに注意してください。
これはすでに親切なユーザーによって解決されていますスコット・クレイナー
使用した数式は =COUNT(UNIQUE(FILTER(MONTH(SEQUENCE(P60-P59,,P59)),ISNUMBER(MATCH(SEQUENCE(P60-P59,,P59),SEQUENCE(E81-E80,,E80),0)),"")))) です。
問題なく動作しますが、2021 年 2 月 1 日~2021 年 10 月 1 日などの日付セットと、任意の年の 6 月から 11 月までの期間を比較するために動作させる必要があります。現在使用されている数式では、2022 年 2 月 1 日~2022 年 7 月 1 日は 2021 年 6 月 1 日~2021 年 11 月 30 日と重複しないため、2022 年 2 月 1 日~2022 年 7 月 1 日の重複月を見つけることができません。任意の日付セットと任意の年の 6/1/## ~ 11/30/## 期間の間で一致する月の数を見つけることはできますか?
答え1
試してみます... 2 つの日付範囲の重複を見つけるための私のアプローチは次のとおりです。
- 日付範囲 a - b と c - d を 1900 年からの月数に変換します。
- これらの月数をa' - b'とc' - d'と呼ぶことにしましょう
- つまり
a' =(YEAR(a)-1900)*12 + MONTH(a)
、例えばa=1/1/2020ならa'=1441となる。 - 毎月1日を無視するには、
-(DAY(a)<2)
上記の式に以下を追加します。 - b' > a' かつ d' > c' と仮定すると、重なりは MIN(d',b')-MAX(c',a')+1 となる。
- 上記が否定的な場合は重複はありません
計算を簡略化するために、セル アドレスの代わりに代数変数を使用していることに注意してください。
Ps. Excel をもっと使いこなしたいなら、交差演算子 (スペース文字) を使用して、空白の列で列範囲 (1900 年からの月数を表す) を交差させ、空白の数を数えます (例: は=COUNTBLANK(Z1441:Z1446 Z1443:Z1447)
4 になります)。これは、Excel の範囲をいくつでも交差させることができるため、複数の日付範囲がある場合に非常に便利です。月数カウントの日付範囲 (a' から b') を行範囲に変換するには、 を使用します。=INDEX(Z:Z,a'):INDEX(Z:Z,b')
これにより、最終的に重複数が になります=COUNTBLANK(INDEX(Z:Z,a'):INDEX(Z:Z,b') INDEX(Z:Z,c'):INDEX(Z:Z,d'))
。