Подсчет количества отдельных людей, успешно связавшихся в диапазоне дат Excel - PullRequest
0 голосов
/ 25 апреля 2018

Добрый день,

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

a.Имя клиента б.Дата контакта была предпринята попытка c.Была ли попытка контакта успешной (S) или нет (U)

Вот пример данных с заменой конфиденциальных имен

enter image description here

Мне нужно рассчитать количество отдельных людей, с которыми успешно связывались каждый месяц, и отобразить их в виде таблицы:

enter image description here

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

Я пробовал следующую формулу:

{=SUMPRODUCT(IF((EncounterDate<=DU4)*(EncounterDate>=DT4), 
1/COUNTIFS(EncounterDate, "<="&DU4, EncounterDate, ">="&DT4, 
EncLastFirstName, EncLastFirstName, CMService, "S"), 0))}

DU4- Последняя дата месяца
DT4 - Первая дата месяца

Я получаю ошибку Div / 0 по этой формуле.Есть идеи, что я делаю не так, или что я должен делать вместо этого?

Спасибо, я ценю это!

Ответы [ 2 ]

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

Вы получаете #DIV/0!, потому что знаменатель вашего деления может быть нулевым и формулирует «короткое замыкание» при первой необработанной ошибке.Если в какой-либо строке результат равен нулю, то

COUNTIFS(EncounterDate, "<="&DU4, EncounterDate, ">="&DT4, EncLastFirstName, EncLastFirstName, CMService, "S")

... тогда вы получите #DIV/0! с 1/COUNTIFS(...).

Мое решение состоит в том, чтобы удалить часть IF и собратькаждый критерий в числитель, который разрешается как 1, если все верно, и 0, если есть ложь.Кроме того, добавьте обратный числитель критериев к знаменателю операции деления;например, если в числителе (CMService="S"), то добавьте (CMService<>"S") к знаменателю.В этих случаях знаменатель будет отличен от нуля, а числитель будет равен нулю.Ноль, деленный на что-либо, по-прежнему равен нулю (например, 0/100 == 0), поэтому не имеет значения, что является знаменателем, и вы никогда не получите ошибку #DIV/0!.

Если все условия в числителе и индикаторах верны, числитель равен 1, и к знаменателю ничего не добавлено.Если какие-либо условия в числителе и индикаторах неверны, числитель равен 0, и в знаменатель добавлено что-то, чтобы не происходило #DIV/0!.

В DV4 в качестве стандартной формулы без CSE,

             [<~~~~~~~~~~~~~~~~~ numerator portion ~~~~~~~~~~~~~~~~~>] / [<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ denominator portion ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>]+[<~~~~~~~~~~ denominator adjustment portion ~~~~~~~~~~>]
=sumproduct(((EncounterDate>=DT4)*(EncounterDate<=DU4)*(CMService="S"))/(countifs(EncLastFirstName, EncLastFirstName, EncounterDate, ">="&DT4, EncounterDate, "<="&DU4, CMService, "S")+(EncounterDate<DT4)+(EncounterDate>DU4)+(CMService<>"S")))

С помощью этого метода отмены любых #DIV/0! с базовыми математическими вычислениями вы можете увеличивать или уменьшать количество критериев до тех пор, пока вы сохраняете настройку знаменателя равной обратномучислитель.

Кстати, ожидаемые результаты по вашему вопросу неверны.

enter image description here

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

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

...