2012-06-12 3 views
-1

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

Tom | xyz | 5/2/2012
Dick | foo | 5/2/2012
Tom | бар | 6/1/2012

На другом листе есть строка, в которой я хочу, чтобы иметь возможность поставить на имя, например, «Томь», и получить на следующей ячейке по формуле данные для запись LAST (последний по дате) в первом листе. Таким образом, первый лист представляет собой журнал, а второй лист отображает последний. В следующем примере вводится первая ячейка, а остальные - формулы, отображающие данные с первого листа:

Tom | бар | 06/1/2012

и т. Д., Показывая самую последнюю датированную запись в журнале.

Я в тупике, любые идеи? :)

ответ

0

Если вам нужно сделать только один поиск, вы можете сделать это путем добавления двух новых столбцов в журнале листа:

Лист1

| A | B | C  | D | E | F 
1 | Tom | xyz | 6/2/2012 | | * | * 
2 | Dick | foo | 5/2/2012 | | * | * 
3 | Tom | bar | 6/1/2012 | | * | * 

Sheet2

| A | B   | C 
1 | Tom | =Sheet1.E1 | =Sheet1.F1 

* (E1) = =IF(AND($A1=Sheet2.$A$1;E2=0);B1;E2)

(т.е. вставить формулу выше в E1, затем скопируйте/вставьте его в другие ячейки с помощью *)

Объяснение: если A не то, что вы ищете, идите к следующему; если это так, но есть непустой следующий, перейдите к следующему; в противном случае, получите его. Таким образом вы выбираете последний, соответствующий вашему поиску. Я предполагаю, что вам нужна последняя запись, а не «та, которая имеет самую последнюю дату», так как это то, что вы попросили в своем примере. Если я неправильно интерпретирую ваш вопрос, обновите его, и я могу попытаться дать лучший ответ.

Update: Если даты журнала могут быть неисправны, вот как получить последнюю запись:

* (F1) = =IF(AND($A1=Sheet2.$A$1;C1>=F2);C1;F2)

* (E1) = =IF(C1=F1;B1;E2)

Здесь я просто заменил тест F2=0 (выберите следующий, если не пуст) для C1>=F2 (выберите следующий, если он был более поздним), а для другого столбца выберите следующий, если первый тест также сделал это.

Отказ от ответственности: Я очень неопытен с электронными таблицами, решение выше уродливо, но выполняет свою работу. Например, если вы хотите, чтобы вторая строка в Sheet2 выполняла другой поиск, вам нужно добавить еще два столбца в Sheet1 и т. Д.

+0

Это самая последняя дата, которую я ищу.И количество записей будет продолжать увеличиваться с течением времени, и я хочу получить только последнюю дату, ближайшую к текущей дате. – Joshua

+0

Ваш пример показывает 'Том | бар | 6/1/2012', который НЕ является последней датой. Поэтому прошу пояснить: как новые записи добавляются в журнал, они будут отображаться в конце всегда (то есть будут ли они «естественно упорядочены») или нет? – mgibsonbr

+0

Отвечено обновлено. И в случае, если я не был ясен, идея состоит в том, чтобы повторить форумla (копировать/вставлять, который обновляет индексы) для каждой добавленной новой записи (сейчас или в будущем). Кстати, дополнительные столбцы не обязательно должны быть в Sheet1, они могут быть в Листе2 (или где-то еще), если вам нужно. Но AFAIK вам всегда нужно «предварительно распределить» форумлас, нет общего решения, которое автоматически расширяется по мере добавления новых строк (даже если вы использовали интервал, вам нужно указать его конец). Возможно, я ошибаюсь (см. Мой отказ). – mgibsonbr

Смежные вопросы