Подсчитайте количество дней в нескольких диапазонах дат без учета перекрытий

#excel #vba #excel-formula

#excel #vba #excel-формула

Вопрос:

У меня есть таблица, в которой описывается, когда некоторые гоночные автомобили в пуле автомобилей недоступны для модификации. В таблице описаны даты начала и окончания для каждого изменения, и иногда несколько изменений происходят в перекрывающиеся даты. Я хочу знать, общее количество дней, в течение которых конкретный автомобиль недоступен в течение определенного года. …………

Рабочий лист:

введите описание изображения здесь

В приведенном выше примере я хочу подсчитать дни недоступности car в 2019 году в диапазонах AC:AD , AG:AH AK:AL и AO:AP , не считая перекрывающихся дней. Результат для Car 1 должен составлять 5 дней.

У Stackoverflow много похожих проблем, но мне еще предстоит найти ту, в которой вам нужно подсчитывать даты подобным образом.

Ответ №1:

Должно быть, вы искали довольно бессистемно, если не нашли ответа на этот вопрос. Только что проверил сам, и поиск в Google занимает около минуты. Вы также не показали свою попытку решения проблемы, поэтому я только укажу вам правильное направление, не показывая вам всего решения.

Это формула массива, поэтому ее нужно вводить с помощью Control-Shift-Enter:

  =COUNT(MMULT(
 TRANSPOSE(B2:B4^0),
 (TRANSPOSE($A$8 ROW(A1:INDEX($A:$A, $B$8-$A$8 1))-1)>=$A$2:$A$4)*
 (TRANSPOSE($A$8 ROW(A1:INDEX($A:$A, $B$8-$A$8 1))-1)<=B2:B4))^0)
  

введите описание изображения здесь

Комментарии:

1. Я потратил на это довольно много времени. Если у вас есть ссылка на одно из решений, которые вы нашли в Google, я был бы очень признателен. Проблема в том, что данные в вашем примере перечислены в таблице снизу вверх. У меня есть все данные по нескольким столбцам в одной строке.