2015-06-19 4 views
1

Например:вытягивать и сравнения дат в Excel

На моей первой вкладке Last visit, у меня есть столбцы, Customer Name, Customer # и Scheduled date

На моей второй вкладке, All visits я имею Customer Name, Customer # и Visit Dates. Теперь на этой вкладке отображаются все даты посещения (даже последняя, ​​которая находится на Last visit), а первая вкладка показывает только дату последнего посещения и следующую запланированную дату.

Цель: на моей первой вкладке Last Visit мне нужна логика, которая сравнивает запланированную дату посещения со всеми датами посещения .. для этого конкретного идентификатора клиента. Итак, в следующем столбце после Scheduled date я хочу новый столбец Last visit date, который сравнивает посещение до последней даты посещения этого конкретного клиента. Таким образом, у некоторых клиентов есть несколько посещений, мне нужна каждая ячейка для каждого клиента (более 300 для этого магазина), чтобы читать все время, которое они посетили, и только тянуть максимум (последнее, НО НЕ ТОЛЬКО их последний визит) вторая вкладка All visits

Причина, по которой я хочу получить вторую по величине дату всех своих посещений, заключается в том, что на вкладке all visits в нее вводится даже их запланированная дата.

Пример: Таблица 1:

Billy Joe 12345  1/02/15  <-- Scheduled visit new column --> visit before last visit 

Custmer2  Id2  Date 

EtcTab 2:

Billy Joe 12345  03/15/14 

    Billy Joe 12345  04/15/14 

    Billy Joe 12345  1/02/15 

Я хотел бы дату 4/15/14, а не два других ..

У меня есть частичное уравнение, работает для клиентов MOST. Проблема с уравнением:

Если клиент v более чем один раз в месяц, он по-прежнему вытаскивает вторую самую высокую дату всех своих посещений. Как мне сделать это, чтобы убедиться, что визит до последнего посещения должен быть меньше, чем их последний визит?

Вот мое уравнение:

{= LARGE (IF (('Все посещения' B: B = 'Последний визит' B2), ('Все посещения' C:! C)), 2)}

B2 соответствует идентификатору клиента (его соответствие их идентификатор на другой странице, поэтому, когда я перетащить его вниз он просто продолжает соответствовать идентификаторы) ...

Пример вопроса:

6/3/2015 
6/18/2015 
6/26/2015 
6/9/2015 

Обратите внимание, как существует несколько посещений в месяц, так что мое уравнение поставит 6/18/2015 во всех местах, даже если их запланированные визиты на этот месяц будет меньше их last visit.

+0

Улучшенное форматирование и обновленные теги – Ram

+0

@Ram Почему удалить [тег: совпадение] ? – chancea

+0

@chancea [tag: match] очень общий и [tag: excel-match] не существует, поэтому я думал, что [tag: excel-formula] лучше, чем [tag: match]. Я создал и добавил [tag: excel-match]. Это лучше? – Ram

ответ

1

Если я понимаю это правильно, все, что нам нужно сделать, это добавить дополнительные критерии массива в вашу функцию LARGE.

Вы уже получаете второй по величине на основе идентификатора клиента.Но мы хотим, чтобы второй по величине на основе Id клиента и на основе запланированной даты:

=LARGE(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*(IF('All visits'!C:C<='Last visit'!C1,'All visits'!C:C)),2) 
     ^^^^^^^^^ Customer ID ^^^^^^^^ ^^ignore blanks^^ ^^^^ Only grab the dates that are <= last visit ^^^^ ^2nd largest 

Редактировать, чтобы добавить дополнительные проверки для того, когда клиент имеет только дату 1 визит:

Если мы хотим, для отображения #N/A, если есть меньше, чем две даты, мы должны использовать SUMPRODUCT, чтобы получить общее количество записей:

SUMPRODUCT(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*('All visits'!C:C<='Last visit'!C1)) 

затем мы можем добавить, что в IF заявление вернуться либо NA() для <2 случая или нашу оригинальную формулу для >=2 случая:

=IF(SUMPRODUCT(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*('All visits'!C:C<='Last visit'!C1))<2,NA(),LARGE(('All visits'!B:B='Last visit'!B1)*('All visits'!C:C>0)*(IF('All visits'!C:C<='Last visit'!C1,'All visits'!C:C)),2)) 

Вы можете изменить NA() на то, что соответствует вашим требованиям

+0

Thank вы так много! Это сработало отлично. Есть ли способ добавить еще одну проверку, чтобы убедиться, что вытащенные данные имеют более высокую дату, чем «1/0/1990»? Проблема: если у клиента не было двух посещений, он скажет, что их последний визит - «1/0/1990». Я предпочел бы, чтобы это просто появилось как # N/A или что-то, потому что я делаю условное форматирование и некоторые vlookups, чтобы подсчитать количество дней между посещениями, и это появляется как 30 000 дней или около того. –

+0

@cole Ah позвольте мне посмотреть ... – chancea

+0

@ColeCoen обновлен – chancea