Saturday, January 23, 2010

Concatenar rangos ¿o no?

Cuando realizamos cálculos en Excel no es infrecuente que llegado a un punto nos sea necesario concatenar un conjunto relativamente largo, posiblemente indeterminado, de celdas en un rango fila o columna. ¿Cómo lo hacemos?

No, la función CONCATENAR no funcionar para rangos; tampoco el operador &.

Dos son las respuestas que suelen darse a este problema:

Opción 1
Crear una función definida por el usuario (en VBA) que permita concatenar rangos; veáse, por ejemplo, http://excel.tips.net/Pages/T003062_Concatenating_Ranges_of_Cells.html.

Opción 2
Si no puede hacerse, no se hace. Busquemos un procedimiento alternativo, en lugar de concatenar todas las celdas de golpe, las añadimos secuencialmente a la cadena construida hasta el momento; en la última celda tendremos la concatenación deseada.
Por ejemplo, si queremos concatenar el rango A5:BA5 en la fila 6 (asumiendo que está libre) escribiremos:
  • en A6, escribiremos =A5,
  • en B6 y siguientes, =A6+B5
  • Se extiende hasta el final del área de trabajo. En BA6 está el rango concatenado.
Espero que te sea útil.

Funciones de respuesta matricial

Distintas funciones en Excel devuelven más de un valor como respuesta, ejemplos son las funciones TRANSPONER, MMULT, MINVERSA, FRECUENCIA, ESTIMACION.LINEAL...

Sin embargo la ejecución estándar (con Enter) sólo devuelve un valor y no el conjunto de valores esperados...
¿Cómo deben ejecutarse?

Su ejecución implica la selección previa del rango de respuesta y su ejecución matricial (con Ctrl+Shift+Enter). El proceso completo es el siguiente:
  1. Escribir la fórmula en la celda superior izquierda del rango previsto de respuesta. Pulsar Enter.
  2. Seleccionar el rango de respuesta a partir de la celda anterior.
  3. Editar la fórmula manteniendo la selección (por ejemplo pulsando F2).
  4. Ejecutar la fórmula de forma matricial pulsando Ctrl+Shift+Enter de forma simultánea.

    NOTAS
    • Si el rango de respuesta seleccionado es mayor que el conjunto de datos devuelto por la función, el rango se rellena con valores de error #N/A (valor no disponible).
    • Si el rango de respuesta seleccionado es menor al conjunto de datos devuelto por la función, el resultado bien será parte del resultado total bien un conjunto de mensajes de error.
    • Una vez ejecutada la función matricial, el rango de respuesta sólo puede editarse o borrarse de forma conjunta. Si aparece el mensaje de alerta "No puede cambiarse parte de una matriz." puede cancelarse la edición con la tecla Esc.

    Tuesday, January 19, 2010

    Parecen números...¿lo son?

    A veces en Excel, un número queda alineado a la izquierda. Un primer error es ignorarlo; el segundo es alinearlo a la derecha porque queda más bonito (o porque es donde debería estar).
    Cuando esto pasa es porque eso que parece un número es internamente texto, sea porque el formato de número de la celda es de texto, porque se ha puesto un apóstrofe como primer carácter (ello fuerza el comportamiento como texto), porque se ha creado como cadena de texto o porque es el resultado de cálculo de una función de texto.

    En cualquier caso, operar con texto no siempre funciona (aunque a veces, sí) lo cual genera errores difíciles de detectar y de interpretar. Para muestra un botón....



    CONSEJO
    Tén presente el tipo de dato que contiene tu celda de cálculo y no hagas cálculos con texto cuando esperas un número. Tres expresiones pueden ser útiles:
    • ESNUMERO(ref): indica si el contenido de una celda está considerado como número.
    • ESNUMERO(VALOR(ref)): indica si el contenido de una celda puede ser reconocido como número.
    • VALOR(ref): convierte a número.