Как создать список уникальных значений из нескольких листов в Excel?
При работе с данными, распределенными по нескольким листам в Excel, может возникнуть необходимость объединить информацию и создать список уникальных значений. Хотя Excel не предоставляет прямой встроенной функции для этой задачи, существуют несколько методов ее выполнения. В этой статье мы рассмотрим три практичных подхода к созданию списка уникальных значений из нескольких листов.
Создание списка уникальных значений из нескольких листов
Создание списка уникальных значений из нескольких листов с помощью кода VBA
Чтобы перечислить все уникальные значения со всех листов, следующий код VBA может помочь вам, сделайте следующее:
1. Нажмите и удерживайте клавиши "ALT + F11", чтобы открыть окно "Microsoft Visual Basic for Applications".
2. Нажмите "Вставить" > "Модуль" и вставьте следующий макрос в окно Модуля.
Код VBA: Создание списка уникальных значений из нескольких листов:
Sub SheelsUniqueValues()
Dim xObjNewWS As Worksheet
Dim xObjWS As Worksheet
Dim xStrAddress As String
Dim xIntRox As Long
Dim xIntN As Long
Dim xFNum As Integer
Dim xMaxC, xColumn As Integer
Dim xR As Range
xStrName = "Unique value"
Application.ScreenUpdating = False
xMaxC = 0
Application.DisplayAlerts = False
For Each xObjWS In Sheets
If xObjWS.Name = xStrName Then
xObjWS.Delete
Exit For
End If
Next
Application.DisplayAlerts = True
For xFNum = 1 To Sheets.Count
xColumn = Sheets(xFNum).Cells.Find(What:="*", after:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
If xMaxC < xColumn Then
xMaxC = xColumn
End If
Next xFNum
Application.DisplayAlerts = True
Set xObjNewWS = Sheets.Add(after:=Sheets(Sheets.Count))
xObjNewWS.Name = xStrName
For xColumn = 1 To xMaxC
xIntN = 1
For xFNum = 1 To Sheets.Count - 1
Set xR = Sheets(xFNum).Columns(xColumn)
If TypeName(Sheets(xFNum).Columns(xColumn).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)) <> "Nothing" Then
xIntRox = xR.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Sheets(xFNum).Range(Cells(1, xColumn).Address & ":" & Cells(xIntRox, xColumn).Address).Copy
Cells(xIntN, xColumn).PasteSpecial xlValues
xIntN = xIntRox + xIntN + 1
End If
Next xFNum
If xIntRox - 1 > 0 Then
xIntRox = xIntN - 1
xStrAddress = Cells(1, xColumn).Address & ":" & Cells(xIntRox, xColumn).Address
Range(xStrAddress).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Range(xStrAddress).Copy
Cells(1, xColumn + 1).PasteSpecial xlValues
Range(xStrAddress).AdvancedFilter Action:=xlFilterInPlace, Unique:=False
Columns(xColumn).Delete
Range(xStrAddress).Sort key1:=Cells(1, xColumn), Header:=xlNo
End If
Next xColumn
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
3. После вставки вышеуказанного кода нажмите F5 для его запуска, и будет создан новый лист с названием Уникальные значения, где будут перечислены уникальные имена из столбца A со всех листов, как показано на скриншоте ниже:
Создание списка уникальных значений из нескольких листов с помощью Kutools AI Ассистента
В этом разделе мы покажем вам, как легко создать список уникальных значений из нескольких листов с помощью Kutools AI Ассистента.
Нажмите "Kutools" > "AI Ассистент", чтобы открыть панель "Kutools AI Ассистент", на панели выполните следующие действия:
- Введите запрос в поле чата, например:
Извлечь все уникальные значения из столбца A со всех листов этой книги и перечислить уникальные значения на новом листе. - Затем нажмите клавишу Enter или кнопку "Отправить". Kutools AI проанализирует вопрос, после завершения нажмите кнопку "Выполнить", и все уникальные значения из нескольких листов будут отображены на новом листе, см. демо:
Создание списка уникальных значений из нескольких листов с помощью формулы (Excel 365)
Если вы хотите создать список уникальных значений из нескольких листов в Excel с помощью формулы, это можно сделать, комбинируя динамические функции массива, такие как UNIQUE и VSTACK в Excel 365.
Пожалуйста, введите следующую формулу в пустую ячейку, затем нажмите клавишу Enter, чтобы извлечь уникальные значения в один столбец из нескольких листов. См. скриншот:
=UNIQUE(VSTACK(Sheet1!A1:A11, Sheet2!A1:A11, Sheet3!A1:A11, Sheet4!A1:A11))
- VSTACK: Объединяет несколько диапазонов (например, Sheet1!A1:A11, Sheet2!A1:A11, Sheet3!A1:A11, Sheet3!A1:A11) в один вертикальный массив.
- UNIQUE: Фильтрует дубликаты и возвращает только уникальные значения из объединенного списка.
- A1:A11: Настройте диапазон, чтобы он включал ваш фактический диапазон данных.
В этой статье мы рассмотрели три эффективных метода создания списка уникальных значений из нескольких листов в Excel. Каждый метод имеет свои преимущества, позволяя выбрать тот, который лучше всего подходит для вашей версии Excel, уровня навыков и конкретных потребностей. Если вас интересует изучение дополнительных советов и приемов Excel, наш веб-сайт предлагает тысячи учебных материалов.
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!