Игнорировать дубликаты и создать новый список уникальных значений в Excel

У меня есть столбец значений, который часто отображается как дубликаты. Мне нужно создать новый столбец с уникальными значениями на основе первого столбца следующим образом:

Column A   Column B  
a          a
a          b
b          c
c
c

Этот столбец B на самом деле должен появиться на другом листе в той же книге, поэтому я предполагаю, что он будет работать с форматом стиля sheet2!A1.

Мне не повезло с параметрами меню "Данные/Фильтр", поскольку это, похоже, работает только с командой. Мне нужна колонка B для автоматического обновления всякий раз, когда новое значение вводится в столбец A.

Ответ 1

Ответ на тотеро правильный. Ссылка также очень полезна.

В принципе, вам нужна следующая формула:

B2=INDEX($A$2:$A$20, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$20), 0))

Затем нажмите ctrl + shift + enter (или он не будет работать с использованием формулы массива).

Здесь нужно иметь в виду две важные вещи: полный список находится в ячейках A2:A20, тогда эта формула должна быть вставлена ​​в ячейку B2 (Not B1, так как это даст вам круговую ссылку). Во-вторых, это формула массива, поэтому вам нужно нажать ctrl + shift + enter или она не будет работать правильно.

Ответ 2

Существует хорошее руководство, как это сделать здесь.

В основном что-то похожее на:

=INDEX(Sheet1!$A$1:$A$20, MATCH(0, COUNTIF($B$1:B1,Sheet!$A$1:$A$20), 0))

Ответ 3

В моем случае предел был заморожен при использовании формулы

B2 = ИНДЕКС ($ A $2: $A $20, MATCH (0, COUNTIF ($ B $1: B1, $A $2: $A $20), 0))

потому что было много строк (10000). Поэтому я сделал это по-другому, как показано ниже.

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

Скопировано с веб-сайта Microsoft Office:

Select all the rows, including the column headers, in the list 

который вы хотите отфильтровать.

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

On the Data menu, point to Filter, and then click Advanced Filter.
In the Advanced Filter dialog box, click Filter the list, in place.
Select the Unique records only check box, and then click OK.

Отфильтрованный список отображается и дубликаты строк скрыты.

On the Edit menu, click Office Clipboard.

Отображается панель задач Clipboard.

Make sure the filtered list is still selected, and then click Copy Copy button.

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

On the Data menu, point to Filter, and then click Show All.

Исходный список повторно отображается.

Press the DELETE key.

Исходный список удален.

In the Clipboard, click on the filtered list item.

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

Источник: Веб-сайт Microsoft Office (ссылка удалена, причина мертва)

Ответ 4

В отсортированном столбце вы также можете попробовать эту идею:

B2=A2
B3=IFERROR(INDEX(A:A,MATCH(B2,A:A,1)+1),"")

B3 можно приклеить вниз. Это будет результат 0 после последнего уникального матча. Если это нежелательно, добавьте некоторый оператор IF, чтобы исключить это.

Edit:

Легче, чем оператор IF, по крайней мере для текстовых значений:

B3=IFERROR(T(INDEX(A:A,MATCH(B2,A:A,1)+1)),"")

Ответ 5

Чтобы удалить дубликаты из столбца

  • Сортировка значений в столбце A A- > Z
  • Выберите столбец B
  • Пока столбца B все еще выбран, в поле ввода формулы введите

    =IF(TRIM(A1)=TRIM(A2),"",TRIM(A1))
    
  • Пока столбца B по-прежнему выбрана, выберите "Редактировать" → "Заполнить → " Вниз "(в новых версиях просто выберите ячейку B1 и потяните наружную рамку, чтобы раскрыть весь путь вниз в столбце)

Примечание: если столбец B находится на другом листе, вы можете делать Sheet1! A1 и Sheet1! A2.

Ответ 6

В листе листа листа, содержащего список:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rngDest As Range

    If Not Intersect(Target, Me.Columns(1)) Is Nothing Then

        Set rngDest = ThisWorkbook.Sheets("Sheet2").Range("A1")

        Me.Range(Me.Range("A2"), Me.Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _
            Action:=xlFilterCopy, CopyToRange:=rngDest, Unique:=True

    End If

End Sub

Ответ 7

У меня есть список имен цветов в диапазоне A2: A8, в столбце B. Я хочу извлечь список имен цветов.

Следуйте приведенным ниже шагам:

  • Выберите ячейку B2; напишите формулу, чтобы получить уникальные значения из списка.
  • =IF(COUNTIF(A$2:A2,A2)=1,A2,"")
  • Нажмите Enter на клавиатуре.
  • Функция вернет имя первого цвета.
  • Чтобы вернуть значение для остальных ячеек, скопируйте ту же формулу вниз. Чтобы скопировать формулу в диапазоне B3: B8, скопируйте формулу в ячейке B2, нажав клавишу CTRL+C на клавиатуре и вставьте ее в диапазон B3: B8, нажав клавишу CTRL+V.
  • Здесь вы можете увидеть результат, на котором у нас есть уникальный список имен цветов.

Ответ 8

Итак, для этой задачи Сначала выполните сортировку данных в порядке от A до Z или Z до A, тогда вы можете просто использовать одну простую формулу, как указано ниже:

=IF(A2=A3, "Duplicate", "Not Duplicate")

В приведенной выше формуле указано, что если данные столбца A2 (A - столбец и 2 - номер строки) аналогичны A3 (A - столбец, а 3 - номер строки), тогда он будет печатать. Duplicate else будет печатать Not Duplicate.

Давайте рассмотрим пример: столбец А состоит из адреса электронной почты, в котором некоторые дубликаты, поэтому в столбце 2 я использовал приведенную выше формулу, которая в результатах показала мне две дубликаты ячеек: строки 2 и 6.

У вас есть дубликаты данных, которые просто помещают фильтр на ваш листок и делают видимыми только дубликаты данных и удаляют все ненужные данные.

Ответ 9

Честно говоря, я следовал этим примерам в тройник, и они просто не работали. То, что я закончил делать, пытаясь заставить Excel работать, было просто скопировать все содержимое моего столбца в NotePad ++, где я смог найти легкое решение за считанные минуты. Взгляните на это: Удаление повторяющихся строк в Notepad ++

Изменить: Вот краткий обзор того, как это сделать в TextFX:

Плагины → Диспетчер подключений → Показать диспетчер подключений → Доступная вкладка → TextFX → Установить

После того, как TextFX установлен в NotePad ++, вы выбираете весь текст, из которого вы хотите удалить дубликаты, затем убедитесь, что вы проверили: TextFX → TextFX Tools → Сортировка только для UNIQUE строк

Затем нажмите "Сортировка строк с учетом регистра" или "Сортировка строк без учета регистра", и он выполнит уникальный вид.

Ответ 10

Найти здесь, упомянутая выше формула с контролем ошибок

=IFERROR(INDEX($B$2:$B$9, MATCH(0,COUNTIF($D$1:D1, $B$2:$B$9), 0)),"") 

где: (B2: B9 - данные столбца, которые вы хотите извлечь уникальные значения, D1 - это указанная ячейка, где находится ваша формула)

Ответ 11

Все, что вам нужно сделать, это: Перейти на вкладку "Данные". Выберите "Дополнительно" в разделе "Сортировка и фильтр". В действиях выберите: копировать в другое место, если хотите новый список, - Копировать в любое место. В диапазоне списка выберите список, из которого вы хотите получить записи. И самое главное - проверить: только уникальные записи.

Ответ 12

=SORT(UNIQUE(A:A))

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

Ответ 13

Другой подход, начиная с Excel 2016, заключается в использовании Power Query.

Как:

  • выберите данные (включая имя поля),
  • используйте меню Data > From a table or a range,
  • (Excel изменит ваш лист в таблицу Excel, что очень удобно),
  • в редакторе Power Query щелкните правой кнопкой мыши ColumnA (заголовок столбца) и выберите Remove duplicates,
  • в меню выберите Close and load, выберите, где вы хотите результат, и все готово, вот так.
  • Всякий раз, когда вы хотите обновить таблицу результатов, щелкните ее правой кнопкой мыши и выберите " Refresh.

Выгоды:

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

Недостатки:

  • он не обновляется на лету (нужно щелкнуть правой кнопкой мыши и обновить таблицу результатов),
  • люди со старой версией Excel не смогут обновить таблицу результатов.

Ответ 14

СОВРЕМЕННЫЙ подход заключается в рассмотрении случаев, когда столбец информации поступает из веб-службы, такой как источник OData. Если вам нужно сгенерировать поля выбора фильтра с массивными данными, которые имеют реплицированные значения для столбца, рассмотрите приведенный ниже код:

var CatalogURL = getweb(currenturl)
                 +"/_api/web/lists/getbytitle('Site%20Inventory%20and%20Assets')/items?$select=Expense_x0020_Type&$orderby=Expense_x0020_Type";

/* the column that is replicated, is ordered by <column_name> */

    OData.read(CatalogURL,
        function(data,request){

            var myhtml ="";
            var myValue ="";

            for(var i = 0; i < data.results.length; i++)
            {
                myValue = data.results[i].Expense_x0020_Type;

                if(i == 0)
                {
                        myhtml += "<option value='"+myValue+"'>"+myValue+"</option>";
                }
                else
                if(myValue != data.results[i-1].Expense_x0020_Type)
                {
                        myhtml += "<option value='"+myValue+"'>"+myValue+"</option>";

                }
                else
                {

                }


            }

            $("#mySelect1").append(myhtml);

        });