miércoles, 10 de junio de 2020

EXCEL: FILTRAR para eliminar columnas

Excel formula: FILTER to remove columns

Fórmula genérica

=FILTRAR(B5:G12,(rng="a")+(rng="b"))

Explicación

Para filtrar columnas, proporcione una matriz horizontal para el argumento de inclusión. En el ejemplo que se muestra, la fórmula en I5 es:

=FILTRAR(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))

El resultado es un conjunto filtrado de datos que contiene solo las columnas A, C y E de los datos de origen.

Cómo funciona esta fórmula

Aunque FILTRAR se usa más comúnmente para filtrar filas, también puede filtrar columnas, el truco es proporcionar una matriz con el mismo número de columnas que los datos de origen. En este ejemplo, construimos la matriz que necesitamos con lógica booleana, también llamada álgebra booleana.

En álgebra booleana, la multiplicación corresponde a la lógica Y, y la suma corresponde a la lógica O. En el ejemplo que se muestra, estamos usando álgebra booleana con lógica O (adición) para apuntar solo a las columnas A, C y E de esta manera:

(B4:G4="a")+(B4:G4="c")+(B4:G4="e")

El resultado de esta expresión es una matriz horizontal:

{1,0,1,0,1,0}

que se entrega directamente a la función FILTRAR como argumento de inclusión:

=FILTRAR(B5:G12,{1,0,1,0,1,0})

Observe que hay 6 columnas en los datos de origen y 6 valores en el conjunto, todos 1 o 0. FILTRAR utiliza este conjunto como filtro para incluir solo las columnas 1, 3 y 5 de los datos de origen. Se eliminan las columnas 2, 4 y 6.

Con la función COINCIDIR

La aplicación de la lógica O con la suma que se muestra arriba funciona bien, pero no se escala bien y hace que sea imposible utilizar un rango de valores de una hoja de trabajo como criterio. Como alternativa, puede usar la función COINCIDIR junto con ESNUMERO para construir el argumento de inclusión como este:

=FILTRAR(B5:G12,ESNUMERO(COINCIDIR(B4:G4,{"a","c","e"},0)))

La función COINCIDIR está configurada para buscar todos los encabezados de columna en la constante de matriz {"a", "c", "e"} como se muestra. Lo hacemos de esta manera para que el resultado de COINCIDIR tenga dimensiones compatibles con los datos de origen. Observe también que el tercer argumento en COINCIDIR se establece como cero para forzar una coincidencia exacta.

Después de que se ejecuta COINCIDIR, devuelve una matriz como esta:

{1,#N/A,2,#N/A,3,#N/A}

Esta matriz va directamente a ESNUMERO, que devuelve otra matriz:

{VERDADERO,FALSO,VERDADERO,FALSO,VERDADERO,FALSO}

Como arriba, esta matriz es horizontal y contiene 6 valores separados por comas. FILTRAR elimina las columnas 2, 4 y 6.

Dado que los encabezados de columna ya están en la hoja de trabajo en el rango I4: K4, la fórmula se puede adaptar para recoger estos valores directamente así:

=FILTRAR(B5:G12,ESNUMERO(COINCIDIR(B4:G4,I4:K4,0)))

El rango I4: K4 se convierte en {"a", "c", "e"}, que funciona igual que la constante de matriz anterior.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT