Первый вопрос по стеку, но не мое первое посещение!
По сути, у меня есть огромная база данных Excel (> 24 000 строк, объединенная из разных таблиц), над которой я работал неделями, а теперь я Закончив добавление новых записей, я должен очистить его, удалив много дубликатов.
Массив / таблица структурирована следующим образом:
+---------+-------+--------------------+-------------+--------------------+
| Company | Name | Address | Phone | Email |
+---------+-------+--------------------+-------------+-----------+--------+
| Baij&Co | Steve | 458 Preston avenue | 4156854789 | steve@baij&co.com |
Я выполнил поиск с помощью обычных методов но они не совсем отвечают на мою проблему, например:
- Используя кнопку Excel «Удалить дубликаты», выбрав все столбцы, чтобы убедиться, что я сохраняю только уникальные значения
- Использование метод фильтрации для выявления дубликатов и последующего их удаления.
Однако моя цель состоит в том, чтобы удалить дубликаты, для которых в данной строке (строках) содержится минимальное количество информации, как показано в этом примере:
+--------- +-------+--------------------+-------------+--------------------+
| Company | Name | Address | Phone | Email |
+--------- +-------+--------------------+-------------+--------------------+
| Baij&Co | Steve | (blank) | 4156854789 | steve@baij&co.com |
| Baij&Co | Steve | (blank) | (blank) | steve@baij&co.com |
| Baij&Co | Steve | 458 Preston avenue | 4156854789 | steve@baij&co.com |
Здесь я бы хотел удалить 1-ю и 2-ю строку , так как они содержат меньше информации (пропущенный адрес и номер телефона) о том же контроле действовать. Имеет ли это смысл ..?
Я знаю только основы VBA (например, создание пользовательской формы для добавления нового контакта и ввода введенной информации в нужные ячейки), но я борюсь с продвинутыми алгоритмами.
Я просто знаю, что функцию, связанную с VBA, нельзя настроить, кроме выбора столбцов, в которых я хочу удалить дубликаты:
Sheets("Database").Range("ContactsTable").RemoveDuplicates Columns:=1:15, Header:=xlNo
Есть идеи?