
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개월이라고 말할 것입니다. 그러나 나는 그 달의 첫날을 한 달로 계산하지 않습니다.
예를 들어 Range1은 2021년 6월 1일 - 2021년 11월 1일이고 Range2는 2021년 2월 1일 - 2021년 10월 1일인 경우 6월, 7월, 8월, 9월이 Rang1과 교차하므로 답은 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일에서 겹치는 달을 찾는 데 작동하지 않습니다. 2022년 2월 1일 - 2022년 7월 1일은 2021년 6월 1일과 겹치지 않기 때문입니다. - 2021년 11월 30일. 임의의 날짜 집합과 임의의 연도 중 6/1/## - 11/30/## 기간 사이에 일치하는 월 수를 찾을 수 있습니까?
답변1
한 번 살펴보겠습니다... 두 날짜 범위의 집합에 대한 중복을 찾는 접근 방식은 다음과 같습니다.
- 기간 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입니다.
- 위의 값이 음수이면 중복되지 않습니다.
수학을 단순화하기 위해 셀 주소 대신 대수 변수를 사용하고 있습니다.
추신. 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'))
.