Cómo puedo filtrar, ordenar o extraer elementos únicos

Hay tres funciones que puedes utilizar para ordenar y filtrar datos de forma automática:

  • Filtro
  • Único
  • Ordenar

Para obtener más información sobre cada función, haz clic en los enlaces que aparecen a continuación para ver el contenido de ayuda de esta página.

Filtro

Funciones:

=Filter(matrizOrigen, condiciónMatriz)
=Filter(matrizOrigen, condiciónMatriz1, condiciónMatriz2, ...)

Esta función devuelve una versión filtrada de la matriz origen determinada, donde sólo se han incluido determinadas filas o columnas. A continuación se muestran algunas sugerencias que se deben tener en cuenta al utilizar esta función:

  • Cada condición debe ser un rango de valores booleanos de una dimensión o una expresión de fórmulas de matriz que evalúa hasta una matriz de booleanos de una dimensión.
  • Si las condiciones evalúan hasta una matriz de columnas, sólo se devolverán las filas de la matriz de origen que se corresponden con los valores verdaderos de la matriz de condición.
  • Si las condiciones evalúan hasta una matriz de filas, sólo se devolverán las columnas de la matriz de origen que se corresponden con los valores verdaderos de la condición.
  • Si hay varias condiciones, todas deben ser verdaderas para los valores correspondientes de la matriz de origen que se van a devolver.

El comportamiento es similar a =ArrayFormula(IF(condiciónOrigen, matrizOrigen, "")), a excepción de que el filtro omitirá las filas o columnas en lugar de dejarlas en blanco. Además, el filtro puede filtrar un rango completo que se basa en una única fila o columna en lugar de requerir los dos argumentos para que sean dos rangos de igual tamaño. (La matriz origen no se trata como una fórmula de matriz, aunque puedes hacerlo si la ajustas en su propia función ArrayFormula()).

Ejemplos:

  • =Filter(A1:A10, B1:B10>10) devuelve una matriz de todos los valores de la columna A que se encuentran al lado de los valores de la columna B que son superiores a 10.
  • =Filter(A1:B10, B1:B10>10) hace lo mismo pero devuelve los valores de las columnas A y B.
  • =Filter(A1:B10, B1:B10>10, A1:A10<B1:B10) también requiere que los valores de la columna A sean más pequeños que los valores de la columna B.


Único

Función:

=Unique(matrizOrigen)

Esta función sólo devuelve las filas únicas de la matriz origen y descarta los duplicados. Las filas se devuelven en función del orden en que aparecen por primera vez en la matriz origen.

Ejemplos:

  • =Unique({1;3;5;3;7;1;2}) devuelve los valores {1; 3; 5; 7; 2}.
  • =Unique(A1:A10) devuelve los valores de A1:A10.
  • =Unique(A1:B10) devuelve todas las filas únicas desde A1:B10.


Ordenar

Funciones:

=Sort(datos)
=Sort(datos, columnaClave1, ascODesc1, columnaClave2, ascODesc2, ...)

Esta función devuelve las filas de un rango de datos determinado, ordenado en función de las columnas claves determinadas. A continuación se muestran algunas sugerencias que se deben tener en cuenta al utilizar esta función:

  • Puedes especificar la columna clave de dos modos: como una columna dentro del rango de datos o como otra columna fuera del rango. Para especificar una columna dentro del rango de datos, dale un índice (* ¿qué es esto) dentro del rango: 1 es la primera columna del rango, 2 es la segunda columna, etc. Para especificar otra columna fuera del rango (por ejemplo: un valor calculado intermedio que no quieres incluir en el resultado de salida), especifícalo como un rango.
  • Marca cada columna clave para ordenarla de forma ascendente o descendente. Para ello, se debe agregar TRUE o FALSE después de especificar la columna clave.
  • También puedes especificar una única matriz o un único rango. En ese caso, la función devuelve el rango ordenado de forma ascendente con las columnas de izquierda a derecha.

Ejemplos:

  • =Sort(A1:A10) devuelve los valores desde A1:A10, ordenados de menor a mayor.
  • =Sort(A1:A10, 1, FALSE) devuelve los valores desde A1:A10, ordenados de mayor a menor.
  • =Sort(A1:A10, B1:B10, TRUE) devuelve los valores desde A1:A10, ordenados en función de los datos de la columna B.
  • =Sort(A1:B10, B1:B10, TRUE) devuelve el rango completo A1:B10, ordenado en función de los datos de la columna B.
  • =Sort(A1:B10, 2, TRUE) devuelve lo mismo ya que B1:B10 es la segunda columna de A1:B10.
  • =Sort(A1:B10) ordena el rango completo A1:B10, en primer lugar en función de los datos de la columna A (ascendente) y, a continuación, rompe vínculos en función de la columna B (ascendente).
  • =Sort(A1:B10, 1, FALSE, B11:B20, TRUE) ordena en función de A1:A10 descendente y, a continuación, rompe vínculos ordenando en función de B11:B20 ascendente.
  • =Sort(A1:B10, 1, TRUE, B11:B20, FALSE) ordena en función de B1:B10 ascendente y, a continuación, rompe vínculos ordenando en función de B11:B20 descendente.

Si uno de los índices de columna es menor que 1 o mayor que el número de columnas del rango de datos, se ignorará el índice de columnas (junto con el valor ascendente o descendente, si lo hay). Así podrás configurar fórmulas que se ordenen en función de un número variado de columnas como, por ejemplo:

=Sort(A1:B10, C1, C2, C3) ordenará en función de los ID de la columna especificados en C1, C2 y C3. Para ordenar en función de sólo una columna, rellena una de las celdas y deja las otras dos vacías (o introduce un 0 en ellas).