Вычитание Excel в формуле массива - PullRequest
0 голосов
/ 25 апреля 2018

возможно, довольно простой вопрос, на который я не смог найти ответ здесь:

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

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

   A            B
StartDate    EndDate
2017-05-01   2017-08-01
2016-07-01   2017-06-01
2015-09-01   2017-06-01
2015-08-01   2015-09-01
2016-02-01   2018-01-01

{= SUM (IF ((A: AB: B)> 183,1,0))}

Вот моя интуитивная попытка сделать это, который возвращает ошибку #VALUE.Как мне заставить эту функцию возвращать «3», как правильный ответ на вопрос, который я пытаюсь сделать в этом случае?

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Ваша логика формулы абсолютно верна.Однако вам необходимо позаботиться о двух следующих вещах:

  • Вы включаете все ячейки, и некоторые из них могут содержать текст (например, заголовок), и они будут возвращать ошибку, которая даст окончательный результаткак #VALUE.

  • Дата начала меньше, чем Дата окончания, поэтому все результаты вычитания будут меньше или равны 0.

Такесли вы исправите свою формулу, как показано ниже, и CTRL + SHIFT + ENTER , то вы получите правильные результаты.

=SUM(IF((B1:B6-A1:A6)>183,1,0))

Или же вы можете использовать ссылки на целые столбцы (не рекомендуется).

=SUM(IF(IFERROR(B:B-A:A,0)>183,1,0))

0 голосов
/ 25 апреля 2018

Попробуйте,

=sumproduct(--(b2:index(b:b, match(1e99, a:a))-a2:index(a:a, match(1e99, a:a))>183))
'alternate
=sumproduct(--(abs(a2:index(a:a, match(1e99, a:a))-b2:index(b:b, match(1e99, a:a)))>183))

enter image description here

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