Как да филтрирате данни от избор на падащ списък в Excel?
В Excel повечето от нас могат да филтрират данни с помощта на функцията за филтриране. Но опитвали ли сте някога да филтрирате данни от избрания падащ списък? Например, когато избера един елемент от падащия списък, искам съответните му редове да бъдат филтрирани, както е показано на следната екранна снимка. В тази статия ще говоря за това как да филтрирате данни с помощта на падащ списък в един или два работни листа.
Филтриране на данни от избор от падащ списък в един работен лист с помощни формули
Филтриране на данни от избор на падащ списък в два работни листа с VBA код
Филтриране на данни от избор от падащ списък в един работен лист с помощни формули
За да филтрирате данни от падащия списък, можете да създадете няколко помощни колони с формули, моля, изпълнете следните стъпки една по една:
1. Първо вмъкнете падащия списък. Щракнете върху клетка, където искате да вмъкнете падащия списък, след което щракнете Дата > Потвърждаване на данните > Потвърждаване на данните, вижте екранна снимка:
2. В изскочилото Потвърждаване на данните диалогов прозорец, под Настройки , изберете списък от Позволете падащо меню и след това щракнете бутон, за да изберете списъка с данни, въз основа на който искате да създадете падащия списък, вижте екранната снимка:
3, И после щракнете върху OK бутон, падащият списък се вмъква наведнъж и изберете един елемент от падащия списък, след което въведете тази формула: =РЕДОВЕ($A$2:A2) (A2 е първата клетка в колоната, която съдържа стойността на падащия списък) в клетка D2 и след това плъзнете манипулатора за попълване надолу към клетките, за да приложите тази формула, вижте екранната снимка:
4. Продължете да въвеждате тази формула: =АКО(A2=$H$2,D2,"") в клетка E2 и след това плъзнете манипулатора за запълване надолу, за да попълните тази формула, вижте екранната снимка:
Забележка: В горната формула:A2 е първата клетка в колоната, която съдържа стойността на падащия списък,H2 е клетката, в която е поставен падащият списък, D2 е формулата на първата помощна колона.
5. И след това въведете тази формула: =АКОГРЕШКА(МАЛКА($E$2:$E$17,D2),"") в клетка F2, след това плъзнете манипулатора за запълване надолу към клетките, за да попълните тази формула, вижте екранната снимка:
Забележка: В горната формула: E2: E17 е втората помощна формула клетки, D2 е първата клетка в първата колона с помощна формула.
6. След като вмъкнете колоните с помощна формула, трябва да изведете филтрирания резултат на друго място, моля, приложете тази формула: =IFERROR(INDEX($A$2:$C$17,$F2,COLUMNS($J$2:J2)),"") в клетка J2 и след това плъзнете манипулатора за попълване от J2 към L2 и първият запис на данните въз основа на падащия списък е извлечен, вижте екранната снимка:
Забележка: В горната формула: A2:C17 са оригиналните данни, които искате да филтрирате, F2 е третата колона с помощна формула, J2 е клетката, в която искате да изведете резултата от филтъра.
7. И след това продължете да плъзгате манипулатора за попълване надолу към клетките, за да покажете всички съответни филтрирани записи, вижте екранната снимка:
8. Отсега нататък, когато изберете един елемент от падащия списък, всички редове въз основа на този избор се филтрират наведнъж, вижте екранната снимка:
Филтриране на данни от избор на падащ списък в два работни листа с VBA код
Ако вашата клетка от падащ списък в Sheet1 и филтрираните данни в Sheet2, когато изберете един елемент от падащия списък, друг лист ще бъде филтриран. Как можахте да завършите тази работа в Excel?
Следният VBA код може да ви направи услуга, моля, направете следното:
1. Щракнете с десния бутон върху раздела на листа, който съдържа клетката с падащ списък, и след това изберете Преглед на кода от контекстното меню, в отворения Microsoft Visual Basic за приложения прозорец, копирайте и поставете следния код в празния модул:
VBA код: Филтриране на данни от избор на падащ списък в два листа:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
On Error Resume Next
If Not Intersect(Range("A2"), Target) Is Nothing Then
Application.EnableEvents = False
If Range("A2").Value = "" Then
Worksheets("Sheet2").ShowAllData
Else
Worksheets("Sheet2").Range("A2").AutoFilter 1, Range("A2").Value
End If
Application.EnableEvents = True
End If
End Sub
Забележка: В горния код: A2 е клетката, която съдържа падащия списък и Sheet2 дали работният лист съдържа данните, които искате да филтрирате. Броя 1 в сценария: Автофилтър 1 е номерът на колоната, въз основа на който искате да филтрирате. Можете да ги промените според вашите нужди.
2. От сега нататък, когато изберете един елемент от падащия списък в Sheet1 и съответните данни ще бъдат филтрирани в Sheet2, вижте екранната снимка:
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!