Cómo utilizar la función countif en excel con múltiples rangos
Stack Overflow for Teams se traslada a su propio dominio. Cuando se complete la migración, accederás a tus Equipos en stackoverflowteams.com, y ya no aparecerán en la barra lateral izquierda de stackoverflow.com.
Necesito concatenar verticalmente dos rangos disjuntos en VBA para pasarlos a una función de Excel (en este caso la función LINEST). Odio trabajar con arrays en VBA pero he conseguido que funcione usando el siguiente código:
No me preocupa añadir comprobación de errores básicos, como asegurarse de que las dos matrices tienen el mismo número de columnas o añadir funciones. Espero que alguien pueda mostrarme cuál es la forma idiomática de VBA para haber escrito esta función. ¿Podría haber evitado algunas de las variables de ayuda (como arr3 por ejemplo?)? ¿Podría haber evitado los bucles?
Para responder a su pregunta, no. No hay una forma “idiomática” de combinar múltiples arrays juntos sin crear un array más grande (o extender uno de los originales) y copiar manualmente el contenido del array.
No sé si lo has omitido, pero si no está ahí, la opción explícita debería estar al principio de cada módulo de código en todas partes. Si no lo tienes activado, ve a Herramientas –> Opciones –> Requerir Declaración de Variables.
¿Cómo se segrega un rango en Excel?
Seleccione la celda, el rango o la columna completa que contiene los valores de texto que desea dividir. En la pestaña Datos, en el grupo Herramientas de datos, haz clic en Texto a columnas. Siga las instrucciones del Asistente para convertir texto en columnas para especificar cómo desea dividir el texto en columnas separadas.
¿Qué es un ejemplo de rango en MS Excel?
En lugar de una única dirección de celda, se referirá a un rango de celdas utilizando las direcciones de las primeras y últimas celdas del rango de celdas, separadas por dos puntos. Por ejemplo, un rango de celdas que incluya las celdas A1, A2, A3, A4 y A5 se escribiría como A1:A5.
Rango de Excel de celdas no contiguas
Un rango es un grupo o bloque de celdas en una hoja de cálculo que se seleccionan o resaltan. Además, un rango puede ser un grupo o bloque de referencias de celdas que se introducen como argumento para una función, se utilizan para crear un gráfico o se usan para marcar datos.
Cuando las celdas han sido seleccionadas, están rodeadas por un contorno o borde. Por defecto, este contorno o borde rodea sólo una celda de la hoja de cálculo a la vez, que se conoce como la celda activa. Los cambios en una hoja de trabajo, como la edición de datos o el formateo, afectan a la celda activa.
Para crear un rango formado por celdas adyacentes, arrastre con el ratón o utilice una combinación de las teclas Shift y cuatro flechas del teclado. Para crear rangos formados por celdas no adyacentes, utilice el ratón y el teclado o sólo el teclado.
Los rangos se identifican por las referencias o direcciones de las celdas en las esquinas superior izquierda e inferior derecha del rango. Estas dos referencias están separadas por dos puntos. Los dos puntos le dicen a Excel que incluya todas las celdas entre estos puntos de inicio y final.
Puede seleccionar un rango de celdas haciendo lo siguiente
En este ejemplo, el objetivo es contar los valores en tres rangos no contiguos con criterios. Para ser incluidos en el recuento, los valores deben ser mayores de 50. El COUNTIF cuenta el número de celdas de un rango que cumplen con unos criterios determinados. Sin embargo, COUNTIF no realiza recuentos a través de diferentes rangos. Si intenta utilizar COUNTIF con múltiples rangos separados por comas, o en una constante de matriz, obtendrá un error. Hay varias formas de abordar este problema, como se explica a continuación.
INDIRECT evaluará los valores de texto y pasará las referencias a COUNTIF como argumento de rango. Por razones misteriosas, COUNTIF aceptará el resultado de INDIRECT sin quejarse. Como COUNTIF recibe más de un rango, devolverá más de un resultado en un array como éste:
Con un número limitado de rangos, este enfoque puede ser más fácil de implementar. Evita los posibles impactos en el rendimiento de INDIRECT, y permite una sintaxis de fórmula normal para los rangos, por lo que los rangos se actualizarán automáticamente con los cambios en la hoja de cálculo. El ejemplo INDIRECTO anterior se basa en cadenas de texto que deben actualizarse manualmente.
Rango indirecto no contiguo de Excel
Truco de filtrado de Excel usando columnas no contiguasEste post mostrará un truco de fórmula MUY interesante que realizará una operación de búsqueda y devolverá múltiples resultados de coincidencia de columnas no contiguas basándose en cualquier lógica que necesite en su análisis.
NOTA: Para fines de demostración, hemos ubicado los datos y los resultados de la búsqueda uno al lado del otro en la misma hoja. Esto facilita las pruebas. No hay ningún requisito para esta disposición. Puede colocar los datos y los resultados de la búsqueda en hojas separadas o incluso en archivos separados.
Preparando los DatosQueremos asegurarnos de que los nuevos registros añadidos a la tabla sean vistos por la función de búsqueda, así que convertiremos la lista de información en una Tabla de Excel apropiada. Esto también facilitará la lectura de las fórmulas.
Creación de la solución de una sola fórmulaPara lograr esta maravillosa hazaña de prestidigitación, aprovecharemos una de las nuevas funciones de matriz dinámica disponibles para los usuarios de Office 365 (lo siento por todos los demás; supongo que es hora de actualizar) llamada FILTER.
Para nuestro argumento Rango, queremos seleccionar las columnas Nombre (columna B) y Posición (columna E) en los datos, pero FILTRO sólo permite un único rango. Tendremos que seleccionar las columnas que se encuentran entre Nombre y Posición pero ignorarlas en el resultado.