Сравнить строки Excel в таблице - PullRequest
0 голосов
/ 29 января 2020

У меня есть таблица Excel (которая отформатирована как таблица и названа как «таблица 1»). Таким образом, столбцы таблицы называются как @LastName, @FirstName и т. Д.

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

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

Таблица:

@FirstName  @LastName @Seminar     @Date
Frank       Mayer     Workshop 1   2017/01/15
Frank       Mayer     Workshop 2   2019/05/27
Sabine      Adams     Workshop 1   2017/01/15
Volker      Mueller   Workshop 1   2017/01/15
Frank       Mayer     Workshop 1   2018/04/23

Как видно из этого простого примера, Фрэнк Майер присутствовал на семинаре 1 2 раза. Все остальные посетили каждый семинар только один раз. Цель состоит в том, чтобы иметь список Имени, Семинара и последнего посещения. Таким образом, окончательный список должен выглядеть следующим образом:

@FirstName  @LastName @Seminar     @Date
Frank       Mayer     Workshop 2   2019/05/27
Sabine      Adams     Workshop 1   2017/01/15
Volker      Mueller   Workshop 1   2017/01/15
Frank       Mayer     Workshop 1   2018/04/23 

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

Ребята, у вас есть идеи? В моей таблице 1500 строк, поэтому делать это вручную - не вариант ... Может быть, есть способ создать новый лист или таблицу с результатами?

С наилучшими пожеланиями Olaf

Ответы [ 4 ]

0 голосов
/ 29 января 2020

Я бы рекомендовал использовать PIVOT как самый простой и быстрый способ:

enter image description here

0 голосов
/ 29 января 2020

Более динамичный c подход

(т. Е. Вам не придется go выполнять весь процесс каждый раз, когда добавляется больше данных.)

  1. Добавить вспомогательный столбец с именем + фамилия + мастерская для каждой ячейки с именем, например, "ID". Используйте Concatenate или =Name & Lastname & Workshop для консолидации
  2. Создайте сводную таблицу из своей таблицы со следующим списком полей: Строки: Добавить «ID», Значения: Добавить «Дата» и изменить настройки поля значений (щелкните правой кнопкой мыши) до «Макс. даты»
  3. Не забудьте обновить sh сводную таблицу при добавлении новых данных или изменить параметры сводной панели для автоматического обновления при открытии рабочей книги.
0 голосов
/ 29 января 2020

Я бы посоветовал вам использовать функцию Excel "Промежуточные итоги", выбрав функцию Max.

Вы можете столкнуться с проблемами, поскольку вам нужно указать один столбец в первой записи диалогового окна, но это можно решить, создав дополнительный столбец, добавив имя и фамилию и основав свой этот (скрытый) столбец (извините за голландский, у меня нет Engli sh Excel):

enter image description here

Соответствующие записи для других столбцов можно найти с помощью формул поиска basi c (Match, VLookup, ...).

0 голосов
/ 29 января 2020

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

Если вы уменьшаете таблицу, то есть удаляете строки из таблицы; тогда вы могли бы ...

  1. Добавить вспомогательный столбец, объединяющий имя, фамилию и мастерскую.

  2. Затем отсортировать по столбец и по дате уменьшение значения.

  3. Удаление дубликатов только на основе столбца помощника.

  4. Удалить вспомогательный столбец

  5. Сортировать по желанию

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

...