Táboa de contidos
Hoxe mostrarei como crear unha lista dinámica baseada en criterios únicos ou múltiples en Excel.
Descargar o libro de prácticas
Lista dinámica baseada en Criteria.xlsx
Que é unha lista dinámica en Excel?
Unha lista dinámica é unha lista que se crea a partir dun conxunto de datos e que se actualiza automaticamente cando se modifica algún valor do conxunto de datos orixinal ou se engaden novos valores ao conxunto de datos orixinal.
Na imaxe dada, temos unha lista dos nomes de todos os alumnos que obtiveron notas superiores a 60 no exame.
Agora, se cambias as notas de Jennifer Marlo de 68 a 58 e engades un novo alumno chamado Ross Smith coas notas 81 na táboa, a lista axustarse automaticamente.
Isto chámase lista dinámica.
3 xeitos de crear unha lista dinámica en Excel en base a criterios
Aquí temos un conxunto de datos cos Identificacións dos alumnos, os Nomes e as Notas dalgúns alumnos dunha escola chamada Xardín de Infantil Sunflower.
O noso obxectivo hoxe é facer unha lista dinámica baseada nos criterios deste conxunto de datos. Hoxe utilizaremos criterios únicos e múltiples.
1. Usando as funcións FILTER e OFFSET (para novas versións de Excel)
Primeiro de todo, utilizaremos unha combinación de FILTER , OFFSET e CONTAR funcións de Excel.
A función FILTRO está dispoñible só en Office 365 . Polo tanto, isto é só para aqueles que teñen unha subscrición a Office 365 .
Caso 1: baseado en criterios únicos
Tentemos facer unha dinámica lista dos estudantes cuxa nota media é superior ou igual a 60 .
Podes utilizar esta fórmula:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Como podes ver, temos unha lista de todos os alumnos que obtiveron máis de 60 .
E, obviamente, esta é unha dinámica lista. Cambia calquera valor do conxunto de datos ou engade calquera valor novo no conxunto de datos.
A lista axustarase automaticamente.
Explicación da fórmula:
-
COUNTA(C:C)
devolve o número de filas da columna C que non están en branco. Así,COUNTA(C:C)-1
devolve o número de filas que teñen valores sen a Cabeceira de columna ( Nome do alumno neste exemplo). - Se non t ten a Cabeceira de columna , use
COUNTA(C:C)
-
OFFSET(C5,0,0,COUNTA(C:C)-1,1)
comeza a partir da cela C5 (Nome do primeiro alumno) e devolve un intervalo dos nomes de todos os estudantes. - A función COMPLAZAR en combinación coa función CONTARSE utilizouse para manter a fórmula dinámica. Se se engade un alumno máis ao conxunto de datos, a fórmula
COUNTA(C:C)-1
aumentará en 1 e a función OFFSET incluirá o alumno. - Do mesmo xeito,
OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60
devolve TRUE para todas as marcas que son maiores ou iguais a 60 . - Por último,
FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
devolve unha lista de todos os estudantes que obtiveron notas superiores a 60 . - Se calquera alumno novo engádese ao conxunto de datos,
COUNTA(C:C)-1
aumenta en 1 e a función FILTRO actualiza o cálculo incluíndoo. - Así. a fórmula permanece sempre dinámica.
Nota:
Se queres obter as marcas xunto cos nomes da lista, simplemente cambia o quinto argumento de a primeira función OFFSET de 1 a 2 .
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,2),OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)
Caso 2: baseado en varios criterios
Esta vez imos probar varios criterios.
Intentaremos facer unha lista dinámica dos estudantes que obtivo marcas superiores ou iguais a 60, pero cuxos ID son inferiores ou iguais a 200 .
Podes usar esta fórmula:
=FILTER(OFFSET(C5,0,0,COUNTA(C:C)-1,1),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
Como podes ver, temos unha lista de todos os alumnos que obtiveron notas superiores a 60 e teñen ID s inferiores a 200 .
E non hai que dicir, esta é unha lista dinámica.
Se cambias algún valor ou engades algún novo alumno ao conxunto de datos, a lista axustarase automaticamente.
Explicación da fórmula:
- Aquí multiplicamos dous intervalos dinámicos de criterios,
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
- Se tes máis de 2 criterios, multiplica todos os intervalos de criterios do mesmo xeito.
- O resto é o mesmo que o exemplo anterior (de criterios únicos).Utilizouse a función COMPLAZAR en combinación coa función CONTAR para manter a fórmula dinámica.
Nota:
Se queres ver todas as columnas da lista ( Columnas B, C, e D neste exemplo), cambia o primeiro argumento do primeiro OFFSET para a primeira columna ( B5 neste exemplo) e o quinto argumento para o número total de columnas ( 3 neste exemplo).
=FILTER(OFFSET(B5,0,0,COUNTA(C:C)-1,3),(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200))
Ler máis: Excel Crear dinámica Lista da táboa (3 xeitos sinxelos)
2. Uso de INDEX-MATCH con outras funcións (para versións antigas)
Aqueles que non teñen A subscrición a Office 365 non pode usar a fórmula anterior.
Estou amosando unha forma máis complexa para aqueles que usan a versión anterior de Excel, usando o INDEX-MATCH, Funcións OFFSET, SMALL, IF, ROW, COUNTIF, e COUNTIFS de Excel. Teña en conta que estas fórmulas son fórmulas matriciales. Polo tanto, para aplicalos en versións antigas de Excel, cómpre premer Ctrl+Maiús+Intro en lugar de simplemente Intro.
Caso 1: baseado en criterios únicos
A fórmula para crear unha lista dinámica dos estudantes que obtiveron máis ou igual a 60 será:
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60,
OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIF(D:D,">=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
Como podes ver, volvemos ter os nomes de todos os alumnos que obtiveron máis ou igual a 60 .
Esta vez puxémonos en ascensoorde dos números.
E si, a lista é dinámica. Engade un novo alumno ao conxunto de datos ou cambia as notas de calquera alumno do conxunto de datos.
A lista axustarase automaticamente.
Explicación de a Fórmula:
- Aquí C:C é a columna da que queremos extraer o contido da lista ( Nome do alumno neste exemplo). Usa o teu.
- D:D é a columna onde se atopa o criterio ( Notas medias neste exemplo). Usas o teu.
- C5 e D5 son as celas desde onde se iniciaron os meus datos (xusto debaixo das Cabeceiras das columnas ). Usas o teu.
- “>=60” é o meu criterio (Maior ou igual a 60 neste exemplo). Usas a túa.
- Ademais destes poucos cambios, mantén o resto da fórmula sen cambios e utilízaa no teu conxunto de datos. Recibirás unha lista dinámica segundo o teu criterio desexado.
Caso 2: baseado en varios criterios
O INDEX-COORDINACIÓN a fórmula para a lista dinámica baseada en varios criterios é un pouco máis complexa. Aínda así, estou a mostrar.
A fórmula para obter os nomes dos estudantes que obtiveron notas superiores ou iguais a 60 , pero teñen ID s inferiores a 200 será;
=INDEX(OFFSET(C5,0,0,COUNTA(C:C)-1,1),MATCH(SMALL(IF((OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*
(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200),OFFSET(D5,0,0,COUNTA(D:D)-1,1),""),ROW(A1:INDIRECT("A"&COUNTIFS(B:B,"=60")))),OFFSET(D5,0,0,COUNTA(D:D)-1,1),0),1)
Explicación da fórmula:
- Aquí C:C é a columna da que queremos aextrae o contido da lista ( Nome do alumno neste exemplo). Usas o teu.
- B:B e D:D son as columnas onde se atopan os criterios ( ID do alumno e Notas medias neste exemplo). Usas o teu.
- B5, C5, e D5 son as celas desde onde se iniciaron os meus datos (xusto debaixo das Cabeceiras das columnas ). Usas o teu.
- Multipliquei aquí dous criterios:
(OFFSET(D5,0,0,COUNTA(D:D)-1,1)>=60)*(OFFSET(B5,0,0,COUNTA(B:B)-1,1)<=200)
.Se tes máis de dous criterios, multiplícao en consecuencia. - Volvo utilizar os dous criterios. dentro desta función COUNTIFS :
COUNTIFS(B:B,"=60")
. Utilizas as túas en consecuencia. - Mantén o resto da fórmula sen cambios e utilízaa no teu conxunto de datos. Obterás unha lista dinámica con varios criterios.
Ler máis: Como facer unha lista de validación dinámica de datos usando VBA en Excel
3 . Crea unha lista despregable dinámica baseada en criterios mediante a ferramenta de validación de datos
Agora creamos a lista dinámica. Se queres, podes crear unha lista despregable dinámica en calquera cela da túa folla de traballo.
- Para crear a lista despregábel dinámica, selecciona calquera cela da túa folla de traballo. e vai a Datos > Validación de datos > Validación de datos na sección Ferramentas de datos .
- Obterá a Validación de datos caixa de diálogo. Baixo a opción Permitir , escolla Lista . E baixo a opción Fonte ,introduza a referencia da primeira cela na que está a lista na súa folla de traballo xunto cun HashTag (#) ( $E$5# neste exemplo).
- A continuación, fai clic en Aceptar . Recibirá unha lista despregábel na cela seleccionada como esta.
Ler máis: Como crear unha lista despregable dinámica usando VBA en Excel
Como crear unha lista única dinámica en Excel baseada en criterios
Nesta sección, mostraremos como crear unha lista única en Excel baseada en criterios. Usaremos unha combinación de funcións ÚNICA e FILTRO . Modificamos o conxunto de datos e engadimos os xogos favoritos de cada alumno. Agora, quero saber o nome dos xogos eliminando duplicados con criterios. Os criterios son as notas medias dos alumnos deben ser superiores a 60 .
📌 Pasos:
- Pon a fórmula baseada na combinación das funcións ÚNICA e FILTRO na Cela G5 .
=UNIQUE(FILTER(E5:E25,(D5:D25>60)))
Obtemos unha lista única baseada en criterios.
Explicación de a fórmula:
- FILTRO(E5:E25,(D5:D25>60)
Isto filtra os valores de Rango E5:E25 , coa condición de que as notas medias deben ser superiores a 60 .
Resultado: [Tenis, Voleibol, Rugby, Tenis, Fútbol, Rugby, Rugby, Fútbol]
- ÚNICA(FILTRO(E5:E25,(D5:D25>60)))
Este volve todo o únicovalores do resultado anterior.
Resultado: [Tenis, Voleibol, Rugby, Fútbol]
Conclusión
Uso destes métodos, pode crear unha lista dinámica baseada en criterios únicos ou múltiples en calquera conxunto de datos en Excel. Bota unha ollada ao noso sitio web ExcelWIKI e dá as túas suxestións na caixa de comentarios.