Tenemos dos funciones donde podemos elegir que filas, o, columnas necesitamos de una matriz.
Estas funciones son CHOOSECOLS (ELEGIRCOLS) y CHOOSEROWS (ELEGIRFILAS).
Vamos a empezar viendo CHOOSECOLS (ELEGIRCOLS).
Esta función nos va a devolver una matriz solo con las columnas especificadas.
Sintaxis
=ELEGIRCOLS(matriz,columna_num1,[columna_num2],…)
· Matriz, argumento obligatorio, es la matriz que contiene las columnas que se devolverán en la nueva matriz.
· Columna_num1, argumento obligatorio, es la primera columna que se devolverá.
· Columna_num2, argumento opcional, son las columnas adicionales que se devolverán.
Excel devuelve un error #VALOR si el valor de los argumentos columna_num es cero o excede el número de columnas en la matriz.
Tenemos el siguiente modelo.
Este modelo está en formato de tabla, y, se llama Tabla2.
Si en una celda escribimos el signo igual seguido del nombre de la función, abrimos un paréntesis, como argumento matriz, ponemos Tabla2.
=ELEGIRCOLS(Tabla2
El siguiente argumento es número de columna 1, vamos a seleccionar, de momento, una sola columna, por ejemplo, la 1.
=ELEGIRCOLS(Tabla2;1)
Aceptamos, y, vemos como tenemos una matriz desbordada con la primera columna.
Si cambiamos el argumento número de columna1, de uno a 3, vemos que tenemos la columna de centro.
=ELEGIRCOLS(Tabla2;3)
Ahora, nos vamos a traer dos columnas, que va a ser provincia y total.
El siguiente argumento es número de columna2, pues la expresión quedaría:
=ELEGIRCOLS(Tabla2;3;7)
Vemos una matriz desbordada con las dos columnas.
Vamos a crear los valores únicos de las provincias, y, las ordenamos, para ello, primero ponemos ORDENAR, como argumento matriz, ponemos UNICOS, y, como argumento matriz de UNICOS, seleccionamos la columna de provincia.
=ORDENAR(UNICOS(Tabla2[Provincia]))
El siguiente ejercicio, lo haremos en la hoja Ejemplo2, primero, vamos a crear un desplegable para seleccionar una provincia, lo haremos en la celda J2, para ello, vamos a la pestaña datos, dentro de herramientas de datos, hacemos clic en validación de datos.
Desplegamos permitir, y, seleccionamos lista, en la ventana origen, seleccionamos la celda L4, pero de la hoja Ejemplo1, seguido del operador de rango derramado (#).
Aceptamos.
¿Qué queremos?
Queremos seleccionar una provincia, y, esa provincia es la que debe de aparecer en la matriz desbordada, seleccionamos una provincia.
Ahora, debemos de modificar la función ELEGIRCOLS, donde vamos a usar la función FILTRAR donde como argumento array, es Tabla3, y, como argumento include es la columna provincia y la igualamos al valor de la columna seleccionada.
=FILTRAR(Tabla3;Tabla3[Provincia]=J1)
Aceptamos, y, vemos como tenemos esa matriz desbordada, pero por la provincia que hemos seleccionado.
Ya tenemos el argumento filas de ELEGIRCOLS, pues, después del signo igual, ponemos ELEGIRCOLS, como argumento matriz es la función FILTRAR, y, como argumento numero_col1, ponemos 2, y, como argumento numero_col2, ponemos 7.
Cerramos paréntesis.
=ELEGIRCOLS(FILTRAR(Tabla3;Tabla3[Provincia]=J1);2;7)
Aceptamos, y, tenemos una matriz desbordada con la provincia seleccionada, y, el total.
Si después del signo igual, usamos la función SUMA, tendremos el total de dicha provincia.
=SUMA(ELEGIRCOLS(FILTRAR(Tabla3;Tabla3[Provincia]=J1);2;7))
La función ELEGIRFILAS, funciona igual que ELEGIRCOLS, pero nos devuelve las filas que le indiquemos, los argumentos cambian a número de fila en vez de número de columna.
Sintaxis
=ELEGIRFILAS(matriz,row_num1,[row_num2],…)
· Matriz, argumento obligatorio, es la matriz que contiene las columnas que se van a devolver en la nueva matriz.
· row_num1, argumento obligatorio, es el primer número de fila que se va a devolver.
· [row_num2], argumento opcional son los números de fila adicionales que se devolverán.
El modelo con el que vamos a trabajar es el mismo, pero se llama Tabla4.
Por ejemplo, la siguiente expresión, nos devolverá la fila 3 y 6.
=ELEGIRFILAS(Tabla4;3;6)
Lo siguiente es realizar un reporte, o, informe donde veamos la provincia de Cádiz, y, el centro comercial Metromar.
En la celda I9, ponemos el signo igual, abrimos un paréntesis, para poner una primera condición, dicha condición es que la columna provincia sea igual al valor de la celda J5, y, cerramos paréntesis.
=(Tabla4[Provincia]=J5)
Obtenemos una matriz desbordada con VERDADERO donde hay coincidencia, y, FALSO donde no la hay.
Ponemos el símbolo de asterisco, que es igual que el operador lógico Y, es decir, devuelve VERDADERO si todas las condiciones se cumplen, abrimos otro paréntesis, la siguiente condición, es que el centro sea igual al valor de la celda J6, y, cerramos paréntesis.
=(Tabla4[Provincia]=J5)*(Tabla4[Centro]=J6)
Aceptamos, ahora, VERDADERO se ha convertido en 1, y, FALSO en 0, 1 aparece cuando hay coincidencia, y, 0 cuando no la hay.
Si vamos a la barra de fórmulas, seleccionamos la expresión, excepto el signo igual, podemos ver encima de la expresión os valores devueltos.
En caso de que no aparezcan los resultados de forma automática, pulsamos F9.
Volvemos a poner el símbolo de asterisco, abrimos otro paréntesis, usamos FILA, y, como argumento seleccionamos la columna de provincia, y, cerramos paréntesis.
La expresión de este último paréntesis no es una condición, quiere decir que, si se cumplen las dos primeras condiciones, nos devuelva la fila de la columna provincia.
=(Tabla4[Provincia]=J5)*(Tabla4[Centro]=J6)*(FILA(Tabla4[Provincia]))
Aceptamos, y, tenemos una matriz desbordada con 0 donde no hay coincidencia, y, el número de fila donde hay coincidencia.
Vamos a dejar solo los números de filas, para ello, la expresión anterior, la vamos a usar más de una vez, por lo que después del signo igual, usamos LET, creamos una variable, y, almacenamos la expresión anterior.
=LET(a;(Tabla4[Provincia]=J5)*(Tabla4[Centro]=J6)*(FILA(Tabla4[Provincia]))
Punto y coma, como argumento calculo, filtramos la variable A, siempre que dicha variable, sea diferente a 0.
Cerramos paréntesis.
=LET(a;(Tabla4[Provincia]=J5)*(Tabla4[Centro]=J6)*(FILA(Tabla4[Provincia]));FILTRAR(a;a<>0))
Aceptamos, y, ya tenemos los números de filas a recuperar.
Ya tenemos el argumento row_num1, ahora, usamos ELEGIRFILAS, donde como argumento matriz, es la tabla Tabla4.
=ELEGIRFILAS(Tabla4
Punto y coma, como argumento row_num1, es la expresión anterior, pero a la función FILA, debemos de restar1, en caso contrario, nos devolverá una fila más, porque se está contando el encabezado.
=ELEGIRFILAS(Tabla4;LET(a;(Tabla4[Provincia]=J5)*(Tabla4[Centro]=J6)*(FILA(Tabla4[Provincia])-1);FILTRAR(a;a<>0)))
Aceptamos, y, ya tenemos nuestra matriz desbordada para Cádiz y Metromar.
Para el siguiente ejemplo, seguimos trabajando con el mismo modelo, pero en este caso, se llama Tabla5, queremos seleccionar una provincia y un centro, y, que nos devuelva los productos, cantidad, precio, y, total, pero, si no hemos seleccionado una provincia, ni un centro, debe de aparecer el mensaje sin datos, si seleccionamos una provincia, y, no un centro, debe de aparecer el modelo filtrado por la provincia a partir de la columna centro de la provincia seleccionada, si seleccionamos un centro, y, no una provincia, el modelo debe de ser filtrado por el centro seleccionado, y, si seleccionamos una provincia, y, un centro, el modelo debe de ser filtrado por ambos datos.
En la celda I2, vamos a traernos ordenadas las provincias únicas.
=ORDENAR(UNICOS(Tabla5[Provincia]))
En la celda J2, nos traemos los centros únicos.
=UNICOS(Tabla5[Centro])
En la celda L2, vamos a crear una lista desplegable, a través, de una validación de datos con las provincias únicas, para ello, vamos a la pestaña datos, dentro de herramientas de datos, hacemos clic en validación de datos.
Desplegamos permitir, y, seleccionamos lista, en la ventana origen, ponemos la celda L2 seguida del operador de rango derramado (#).
Aceptamos.
Seguimos los pasos anteriores, y, creamos otra lista desplegable para seleccionar un centro.
No seleccionamos ni una provincia, ni un centro.
En la celda L5, vamos a usar el condicional SI para preguntar con el operador lógico Y, que si el valor de J2 y J3 es igual a blanco (prueba lógica).
=SI(Y(L2="";M2="")
Punto y coma, como argumento valor si verdadero, debe de poner sin datos.
=SI(Y(L2="";M2="");"Sin datos"
Punto y coma, como argumento valor si falso, vamos a volver a preguntar si L2 es igual a blanco, quiere decir que hay un centro seleccionado.
=SI(Y(L2="";M2="");"Sin datos";SI(L2=""
En ese caso, debe de filtrar, por lo que usamos la función FILTRAR, la tabla Tabla5, desde la columna producto hasta total, siempre que cada valor de la columna centro, sea igual al valor de la celda M2, en este caso, nos devolverá el resultado para todas las provincias.
=SI(Y(L2="";M2="");"Sin datos";SI(L2="";FILTRAR(Tabla5[[Producto]:[Total]];Tabla5[Centro]=M2)
Punto y coma, como argumento valor si falso de este segundo SI, preguntamos si M2 es igual a blanco.
=SI(Y(L2="";M2="");"Sin datos";SI(L2="";FILTRAR(Tabla5[[Producto]:[Total]];Tabla5[Centro]=M2);SI(M2=""
Punto y coma, en ese caso, debe de filtrar la tabla Tabla5, desde la columna centro hasta la columna total, siempre que cada valor de cada celda de la columna provincia sea igual al valor de la celda L2.
=SI(Y(L2="";M2="");"Sin datos";SI(L2="";FILTRAR(Tabla5[[Producto]:[Total]];Tabla5[Centro]=M2);SI(M2="";FILTRAR(Tabla5[[Centro]:[Total]];Tabla5[Provincia]=L2)
Punto y coma, como argumento valor si falso de este tercer SI, filtramos el modelo siempre que la columna provincia sea igual al valor de la celda L2, y, la columna centro sea igual al valor de la celda M2.
=SI(Y(L2="";M2="");"Sin datos";SI(L2="";FILTRAR(Tabla5[[Producto]:[Total]];Tabla5[Centro]=M2);SI(M2="";FILTRAR(Tabla5[[Centro]:[Total]];Tabla5[Provincia]=L2);FILTRAR(Tabla5[[Producto]:[Total]];(Tabla5[Provincia]=L2)*(Tabla5[Centro]=M2)))))
Aceptamos, como no hemos seleccionado ni una provincia ni un producto, aparece sin datos.
Seleccionamos una provincia.
Vemos que se filtra el modelo a partir de la columna centro por la provincia seleccionada.
Seleccionemos un centro, pero no una provincia.
Vemos que se ha filtrado el modelo a partir de la columna producto por el centro seleccionado.
Seleccionemos una provincia, y, un centro.
Se filtra el modelo por dicha provincia, y, centro.
Lo siguiente es poner el encabezado, pero debe de ser de forma dinámica, porque según los datos que seleccionemos en L2 y M2, los encabezados cambiaran.
En la celda L4, igual que antes, preguntamos que, si el valor de L2 y M2 es igual a blanco, que ponga un blanco.
=SI(Y(L2="";M2="");""
Punto y coma, como argumento valor si verdadero, preguntamos si el valor de M2 es igual a blanco, es decir, hay una provincia seleccionada, en ese caso nos debe de devolver los encabezados desde centro hasta total.
=SI(Y(L2="";M2="");"";SI(M2=""
Punto y coma, como argumento valor si verdadero del segundo SI, filtramos los encabezados de la tabla tabla5, y, como argumento include, usamos una constante de matriz, donde ponemos 0 en la columna que no queremos que aparezca, y, 1 en la que si queremos que aparezca.
=SI(Y(L2="";M2="");"";SI(M2="";FILTRAR(Tabla5[#Encabezados];{0\0\1\1\1\1\1})
Punto y coma, como argumento valor si falso de este segundo SI, filtramos los encabezados de la tabla tabla5, igual que antes, usamos una constante de matriz.
=SI(Y(L2="";M2="");"";SI(M2="";FILTRAR(Tabla5[#Encabezados];{0\0\1\1\1\1\1});FILTRAR(Tabla5[#Encabezados];{0\0\0\1\1\1\1})))
Aceptamos, y, ya tenemos los encabezados de forma dinámica.
Ahora, vamos a realizar el mismo ejemplo, pero vamos a usar la función ELEGIRFILAS.
En la celda R2, hacemos la misma pregunta que antes, si el valor de L2 y M2 es igual a blanco.
=SI(Y(L2="";M2="");"Sin datos"
Punto y coma, como argumento valor si falso del primer SI, volvemos a preguntar si M2 es igual a blanco, sería el argumento prueba lógica de este segundo SI, es decir, hay una provincia seleccionada, pues. como argumento valor si verdadero, ponemos la función ELEGIRFILAS.
=SI(Y(L2="";M2="");"Sin datos";SI(M2="";ELEGIRFILAS(
Como argumento matriz, ponemos Tabla5.
=SI(Y(L2="";M2="");"Sin datos";SI(M2="";ELEGIRFILAS(Tabla5[[Centro]:[Total]]
Punto y coma, como argumento row_num1, vamos a preguntar si la columna provincia de Tabla5 es igual al valor de L2, quiere decir, que no se ha seleccionado un centro, que nos devuelva la fila de la columna provincia, pero restamos 1, en caso contrario, nos devolverá una fila de más, y, en caso contrario que ponga un texto en blanco.
=SI(Y(L2="";M2="");"Sin datos";SI(M2="";ELEGIRFILAS(Tabla5[[Centro]:[Total]];SI(Tabla5[Provincia]=L2;FILA(Tabla5[Provincia])-1;"")
Aceptamos, y, obtenemos un error.
Al poner FILA(Tabla5[Provincia])-1, nos va a devolver un error, porque estamos preguntando que si hay coincidencia, que nos devuelva la fila, en caso contrario, que devuelva un texto en blanco, por lo que vamos a tener una matriz desbordada con el numero de fila y blanco, cuando usemos esta expresión en la función ELEGIRFILAS, nos devolverá un error, porque no nos puede devolver un registro en blanco, para solventarlo, debemos de filtrar el resultado de la función FILA, siempre que sea diferente a blanco, dicha expresión la vamos a usar dos veces, por lo que vamos a ser uso de la función LET, donde creamos una variable, y, almacenamos la función FILA, como argumento calculo de LET, filtramos la variable A, siempre que dicha variable, sea diferente a blanco, la expresión quedaría:
LET(a;SI(Tabla5[Provincia]=L2;FILA(Tabla5[Provincia])-1;"");FILTRAR(a;a<>""))
Pues, de la expresión anterior, debemos de sustituir la parte señalada:
Por:
Obtenemos una matriz desbordada con los valores correctos.
Seguimos construyendo la función.
Punto y coma, preguntamos si el valor de la celda L2 es igual a blanco, quiere decir que se ha seleccionado un centro.
=SI(Y(L2="";M2="");"Sin datos";SI(M2="";ELEGIRFILAS(Tabla5;LET(a;SI(Tabla5[Provincia]=L2;FILA(Tabla5[Provincia])-1;"");FILTRAR(a;a<>"")));SI(L2=""
Punto y coma, en ese caso, volvemos a usar la función ELEGIRFILAS, cambiamos L2 por M2, volvemos a usar LET, igual que antes, y, filtramos por las celdas que no sean blanco.
=SI(Y(L2="";M2="");"Sin datos";SI(M2="";ELEGIRFILAS(Tabla5[[Centro]:[Total]];LET(a;SI(Tabla5[Provincia]=L2;FILA(Tabla5[Provincia])-1;"");FILTRAR(a;a<>"")));SI(L2="";ELEGIRFILAS(Tabla5[[Producto]:[Total]];LET(a;SI(Tabla5[Centro]=M2;FILA(Tabla5[Centro])-1;"");FILTRAR(a;a<>"")))
Punto y coma, si ninguna de las condiciones anteriores se cumple, pues que filtre el modelo por la provincia, y, centro seleccionado.
=SI(Y(L2="";M2="");"Sin datos";SI(M2="";ELEGIRFILAS(Tabla5;LET(a;SI(Tabla5[Provincia]=L2;FILA(Tabla5[Provincia])-1;"");FILTRAR(a;a<>"")));SI(L2="";ELEGIRFILAS(Tabla5;LET(a;SI(Tabla5[Centro]=M2;FILA(Tabla5[Centro])-1;"");FILTRAR(a;a<>"")));FILTRAR(Tabla5;(Tabla5[Provincia]=L2)*(Tabla5[Centro]=M2)))))
Aceptamos.
Si probamos veremos que obtenemos los mismos resultados que para el ejemplo anterior.
Veamos otro ejemplo, tenemos el siguiente modelo:
Vamos a traernos el modelo por la provincia de Sevilla, pero con la función ELEGIRCOLS, el modelo está en formato de tabla, y, se llama Ventas.
Con la función ELEGIRCOLS nos vamos a traer la columna de provincia, para ello, en una celda, ponemos ELEGIRCOLS, como argumento matriz es la tabla Ventas.
=ELEGIRCOLS(Ventas
Punto y coma, como argumento numero de columna1, ponemos 2, cerramos paréntesis.
=ELEGIRCOLS(Ventas;2)
Tenemos la columna de provincias.
Después del cierre de paréntesis, ponemos el signo igual, y, entre comillas dobles, ponemos Sevilla.
=ELEGIRCOLS(Ventas;2)="Sevilla"
Obtenemos una matriz desbordada con VERDADERO donde hay coincidencia, y, FALSO donde no la hay.
Nos interesa los valores VERDADEROS, ahora, después del signo igual, ponemos la función FILTRAR, como argumento array, ponemos la tabla Ventas, y, como argumento include, es la expresión anterior.
=FILTRAR(Ventas;ELEGIRCOLS(Ventas;2)="Sevilla")
Ya tenemos el modelo por la provincia de Sevilla.
Para el siguiente ejemplo, tenemos una lista desplegable para seleccionar un centro, y, otra lista desplegable para seleccionar un producto.
El modelo es el mismo que para el ejemplo anterior, y, la tabla se llama Ventas2, vamos a crear un reporte filtrado por el centro y producto que seleccionemos.
Vamos a usar la función COINCIDIR para encontrar la posición de las celdas I1, y J1 que son los encabezados donde tenemos las listas desplegables, en una celda, ponemos la función COINCIDIR, como argumento valor buscado, seleccionamos el centro y producto seleccionado.
=COINCIDIR(I1:J1
Como argumento matriz buscada, seleccionamos los encabezados.
=COINCIDIR(I1:J1;Ventas2[#Encabezados]
Punto y coma, como tipo de coincidencia, ponemos exacta, cerramos paréntesis.
=COINCIDIR(I1:J1;Ventas2[#Encabezados];0)
Aceptamos, y, tenemos una matriz desbordada en horizontal con la posición de los encabezados.
Lo siguiente es traernos ambas columnas, para ello, usamos de nuevo la función ENCOL, como argumento matriz, es la tabla Ventas2.
=ELEGIRCOLS(Ventas2
Como argumento numero de columna1, es la expresión anterior.
Cerramos paréntesis.
=ELEGIRCOLS(Ventas2;COINCIDIR(I1:J1;Ventas2[#Encabezados];0))
Tenemos las columnas de centro y producto.
Después del cierre de paréntesis, ponemos el signo igual, y, seleccionamos el centro y producto seleccionado.
=ELEGIRCOLS(Ventas2;COINCIDIR(I1:J1;Ventas2[#Encabezados];0))=I2:J2
Aceptamos, tenemos una matriz desbordada de dos columnas, la primera tenemos VERDADERO donde el centro es igual al seleccionado, y, FALSO donde no lo es, en la segunda columna tenemos VERDADERO donde el producto es igual al seleccionado, y, FALSO donde no lo es.
Nos interesa donde en la primera columna aparezca VERDADERO, y, en la misma posición de la segunda columna también aparezca VERDADERO.
Mejor trabajamos con ceros y unos, para ello, después del signo igual, ponemos el doble signo negativo, y, encerramos la expresión entre paréntesis.
=--(ELEGIRCOLS(Ventas2;COINCIDIR(I1:J1;Ventas2[#Encabezados];0))=I2:J2)
Ahora, tenemos 1 donde era VERDADERO y 0 donde era FALSO.
Si sumamos las unos de las dos columnas, obtendremos 2 cuando haya VERDADERO en la primera columna, y, en la segunda columna en la misma posición, para ello, debemos de sumar cada dos filas, para ello, debemos de trabajar con cada fila, tenemos una función LAMBDA llamada BYROW, que la veremos en el modulo siguiente, pero, la voy a explicar para poder usarla en este ejemplo, esta función va a trabajar con cada fila de forma independiente de un rango, el primer argumento es el rango con el que trabajar (array), que es la expresión anterior.
=-BYROW(-(ELEGIRCOLS(Ventas2;COINCIDIR(I1:J1;Ventas2[#Encabezados];0))=I2:J2)
El siguiente argumento es función, donde ponemos LAMBDA, declaramos una variable, dicha variable almacena la expresión ELEGIRCOLS.
=-BYROW(-(ELEGIRCOLS(Ventas2;COINCIDIR(I1:J1;Ventas2[#Encabezados];0))=I2:J2);LAMBDA(a
El siguiente argumento es el calculo a realizar, en este caso, vamos a sumar la variable “a”, que es cada fila del rango.
Cerramos paréntesis.
=-BYROW(-(ELEGIRCOLS(Ventas2;COINCIDIR(I1:J1;Ventas2[#Encabezados];0))=I2:J2);LAMBDA(a;SUMA(a)))
Aceptamos, y, tenemos la suma de cada fila.
Nos interesa los valores que son 2, que es donde hay coincidencia con el centro y producto, por lo que vamos a filtrar el modelo, siempre que el resultado de la expresión anterior sea igual a 2, por lo que vamos a filtrar Ventas2.
=FILTRAR(Ventas2
Como argumento include, es la expresión anterior, y, la igualamos a 2.
Cerramos paréntesis.
=FILTRAR(Ventas2;-BYROW(-(ELEGIRCOLS(Ventas2;COINCIDIR(I1:J1;Ventas2[#Encabezados];0))=I2:J2);LAMBDA(a;SUMA(a)))=2)
Aceptamos, y, ya lo tenemos.
Ahora, vamos a calcular el total para la provincia de Sevilla, para ello, entre paréntesis, ponemos la expresión anterior.
=(ELEGIRCOLS(Ventas3;2)="Sevilla")
Ponemos el símbolo de asterisco, que es igual que el operador lógico Y, devuelve VERDADERO si todas las condiciones se cumplen.
Abrimos otro paréntesis, con la función ELEGIRCOLS, seleccionamos la columna 7, cerramos paréntesis de función y condición.
=(ELEGIRCOLS(Ventas3;2)="Sevilla")*(ELEGIRCOLS(Ventas3;7))
Tenemos una matriz desbordada en vertical, con cada total para la provincia de Sevilla, como queremos el total, después del signo igual, ponemos la función SUMA.
=SUMA((ELEGIRCOLS(Ventas3;2)="Sevilla")*(ELEGIRCOLS(Ventas3;7)))
Ya lo tenemos.
Veamos otro ejemplo, trabajando con el mismo modelo, este modelo se llama Ventas17, nos vamos a traer el modelo, pero sin el encabezado que seleccionemos en una lista desplegable, en la celda I2, tenemos una lista desplegable con los encabezados.
Seleccionamos el encabezado, por ejemplo, fecha.
En una celda, vamos a preguntar que, si alguno de los encabezados es igual al seleccionado en la lista desplegable, que ponga un texto en blanco, en caso contrario, que cree una secuencia de 7 números en horizontal.
=SI(Ventas17[#Encabezados]=I2;"";SECUENCIA(;7))
Obtenemos una matriz desbordada en horizontal con el numero de encabezado, y, blanco donde el encabezado es igual al seleccionado.
Usamos LET, creamos una variable, y, almacenamos la expresión anterior.
=LET(a;SI(Ventas17[#Encabezados]=I2;"";SECUENCIA(;7))
Ahora, filtramos la variable “a” siempre que sea diferente a blanco.
=LET(a;SI(Ventas17[#Encabezados]=I2;"";SECUENCIA(;7));FILTRAR(a;a<>""))
Ya tenemos los números de encabezados a rescatar.
Ahora, filtramos la tabla Ventas17, como argumento include, es la expresión anterior.
Cerramos paréntesis.
=ELEGIRCOLS(Ventas17;LET(a;SI(Ventas17[#Encabezados]=I2;"";SECUENCIA(;7));FILTRAR(a;a<>"")))
Aceptamos, y, ya lo tenemos.
Para traernos los encabezados de forma dinamica, usamos la siguiente expresión:
=ELEGIRCOLS(Ventas17[#Encabezados];LET(a;SI(Ventas17[#Encabezados]=I2;"";SECUENCIA(;7));FILTRAR(a;a<>"")))
Miguel Angel Franco
Comments