Espero que me podáis ayudar... Necesito formar una matriz de celdas no contiguas en Excel mediante algún tipo de fórmula o función. Actualmente uso Excel 2007. De momento no he sido capaz de hacerlo y por eso me pongo en contacto con vosotros, para saber si se puede o no realizar dicha tarea.
Con la explicación que das es difícil saber exactamente lo que quieres y por qué no puedes hacerlo. Puedes poner los datos en las celdas contiguas o no contiguas como quieras. Supongo que luego querrás hacer algo con esos datos que no puedes por el hecho de no estar contiguos. Pero sin una explicación mejor no esperes milagros. Una forma que hay de juntar celdas no contiguas es usar un rango de celdas contiguas en una hoja diferente, en las que incluir las referencias a las celdas no contiguas. Si por ejemplo tus celdas no contiguas están en la Hoja1 (A1, C3, E3, F8) y formarían una "matriz" 2x2, puedes escribir en la hoja 2: A1: =Hoja1!A1 B1: =Hoja1!C3 A2: =Hoja1!E3 B2: =Hoja1!F8 Donde ahora los datos A1, B1, A2, B2 forman la matriz en celdas contiguas. Pero, insisto, sin mayores explicaciones no sé si esto se acerca siquiera a lo que necesitas.
Hola, gracias por responder. Te explico. Resulta que quiero saber si existe la manera de formar una matriz de filas NO contiguas mediante una función, ya que, mi idea es pasar dicha función como matriz de criterios en la fórmula BDEXTRAER. Si lo consiguiese podría usar el BDEXTRAER como el BUSCARV pero con la potencia de introducir el número de criterios que quisiese. Cuando me refiero a usar BDEXTRAER como BUSCARV me refiero a insertar una columna en una tabla de datos, insertar la fórmula BDEXTRAER y arrastrarla a todas las filas de la tabla. Sin saber formar una matriz de filas no contiguas mediante una función es imposible que funcione, ya que, BDEXTRAER necesita que la matriz de criterios tenga siempre en su primera fila los rótulos de campo y en sus filas siguientes los criterios. Para el uso que yo quiero darle en cada fila la matriz de criterios siempre tendría como primera fila la fila de rótulos, pero, como segunda fila, tendría los valores de la fila en la que inserto la fórmula. Ejemplo suponiendo que los rótulos de campo están desde la columna A a la columna F. Yo lo he intentado introducir la matriz de criterios así, pero, no funciona: para la extraer los datos para la fila dos ($A$1:$F$1 A2:F2) para la extraer los datos para la fila tres ($A$1:$F$1 A3:F3) para la extraer los datos para la fila cuatro ($A$1:$F$1 A4:F4) y así sucesivamente... Gracias. Saludos.
Efectivamente la función DGET (DBExtraer en español) necesita que las filas estén unas a continuación de otras. Incluso no funciona definiendo un nombre para el rango discontinuo de celdas e incluyendo el nombre como parámetro criterio. Bueno al menos en Excel 2007 no funciona. Si funciona, si las celdas están juntas aunque dado ese caso no hace falta el nombre. El truco que te daba en mi primera respuesta sí que te sirve en ese caso. Escoges una hoja o una zona de la hoja donde referencias las celdas disjuntas y usas ese rango en tu función. Si por la dinámica de tu hoja, porque tienes muchos cálculos o muchos datos y varía mucho cada vez, quieres automatizar esa "union" de celdas, entonces hay que usar VBA, pero depende de qué hagas exactamente, como tengas los datos, como cambian... para hacer una macro correcta. Incluso puestos a hacer código puede que merezca la pena no usar DGET y usar directamente el código para extraer y colocar los datos de manera correcta.
Una vez más, gracias por responder. Al leer tu primera respuesta en un primer momento también creí que me podía servir, pero, después de probarlo, comprobé que no, ya que, pasa lo siguiente: Suponiendo que introduzca los criterios en otra hoja y que el criterio sea sólo uno (lo hago tan sintetizado y solo con un criterio para no alargar el ejemplo) si éste rotulo de campo está en la celda A1 donde están los datos y en A2, A3, A4.... están los datos que me van a servir de criterios lo tendría que hacer de la siguiente forma: matriz de criterios En A1: =HojaDatos!$A$1 En A2: =HojaDatos!$A2 luego arrastrar para ver si me coge bien la sucesión, pero, NO es así el hace la siguiente progresión: A1=HojaDatos!$A$1 A2=HojaDatos!A2 A3=HojaDatos!$A$1 A4=HojaDatos!A4 A5=HojaDatos!$A$1 A6=HojaDatos!A6 A7=HojaDatos!$A$1 A8=HojaDatos!A8................. Con lo cual produce saltos y no trata las filas de esos saltos. Sin salvar esos saltos NO me vale y la segunda solución que me propones (VB) no tengo los suficientes conocimientos para usarla, osea que... a menos que se te ocurra como salvar esos datos, tengo perdida la batalla. Agradezco mucho tus propuestas. Gracias. Saludos
Lo que te propongo te sirve poniendo los datos uno a uno. Al ser filas no contiguas no puedes generar las referencias a partir de la primera y arrastrando, a no se que cumplan alguna regla del tipo una si y una no. Entonces te funciona arrastrando pero desde la selección que incluye el patrón completo (la fila que sí mas la fila en blanco). En resumen las referencias las tienes que escribir una a una en el caso peor. Si cumplen alguna regla, aunque no se pueda establecer como patrón para arrastrar siempre se puede hacer por código. A esto me comprometo también a ayudarte, pero necesito conocer tu problema concreto. O bien me lo explicas con un ejemplo sencillo que contenga la complejidad cualitativa del problema y me indicas además cuan grande es caso real o bien te dejo una dirección y me envías el ejemplo por email, con las explicaciones.
No sirve. Sigo sin saber si se puede o no formar una matriz de celdas NO contiguas en excel. Supondré que no se puede, aunque creo que no tiene una dificultad tan grande como para no poderse llevar a cabo. En todo caso, gracias