GJSS Ответов: 2

Сравнение двух различных значений значений столбцов для совпадающих записей


Привет - у меня есть требование сопоставить два разных столбца и удалить соответствующие записи.

скажем, в столбце А у нас есть около 60000 записей(содержит дубликаты), а в столбце В у нас есть 900 записей(уникальных).

Здесь мне нужно сопоставить(не ряд за рядом) 900 записей (Col B) с 60000 записями(col A), чтобы узнать количество совпадений (включая дубликаты записей) в столбце A.

Не могли бы вы мне в этом помочь?

Что я уже пробовал:

я пробовал с каким-то ВПР ,но ничего не вышло

RedDk

Хорошо, вот совет от приверженца MSOffice ... Excel-программа для работы с электронными таблицами и доступа приложения базы данных. Поскольку между ними есть сходство, главным образом внешнее появление "ячейки" или "диапазона" до "набора строк" или "столбца"/"строки", новый пользователь быстро запутывается.

Если вам нужно средство редактирования, которое будет выполнять вычисления с цифровым вводом ... использовать Excel. Если вам нужны реляционные манипуляции, основанные на полях и строках ... используйте доступ.

Все это ясно видно в документации MS Office. Тот факт, что вы упомянули "запись", заставляет меня думать, что доступ будет более полезен в этом случае.

GJSS

Можете ли вы помочь мне в использовании доступа?

RedDk

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

GJSS

Привет - я выполнил эту задачу с помощью подзапроса, запущенного в SQL view в access DB.
Спасибо за вашу помощь.

2 Ответов

Рейтинг:
7

Maciej Los

Этого легко достичь с помощью формула массива[^]. Как-к: Создание формулы массива - поддержка Office[^].


Я бы предложил переместить уникальные данные в ... скажем так - Sheet2 - колонка A. Затем в Sheet1 (с неуникальными данными) - столбец B добавьте следующую формулу (предполагая, что первая строка является строкой заголовка):
= SUM(IF(A2=Sheet2!A$2:A$901,1,0))
Примите его, нажав комбинацию клавиш: Ctrl+Shift+Enter
Заполните приведенную выше формулу до конца данных в Sheet1.

Это вернет количество окурков: 0 - нет (новый - уникальный), >=1 - выходы (дублируются)

Наконец, добавьте фильтр в столбец B (выше нуля) и удалите дублированные данные ;)

Удачи вам!


Patrice T

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

Maciej Los

Для такой части данных риск неограниченного роста потребления оперативной памяти минимален. Я работал с гораздо большим набором данных.
;)

Patrice T

Для таких задач я всегда переключаюсь на базу данных.

Maciej Los

Что касается меня - это зависит от обстоятельств... Я конструктивно ленив, поэтому использую тот инструмент, который мне более удобен. ;)

Рейтинг:
2

Patrice T

Это типичная ситуация, когда Excel просто не является правильным инструментом.
Ваша проблема типична для такой базы данных, как Access или любой другой компонент database engine.

Невозможно помочь вам без точной спецификации вашей проблемы и данных.
А научить вас базам данных в пространстве этого форума невозможно, и нескольких направлений никогда не будет достаточно.

Совет: изучите базы данных или найдите кого-то, кто сделает эту работу.


Maciej Los

Кто отклонил ваш ответ? Голосовали за то, чтобы уравновесить несправедливое голосование!

Patrice T

Спасибо