Trabajar con funciones de VBA que devuelven una matriz en Excel 2016

Trabajar con funciones de VBA que devuelven una matriz en Excel 2016

Las fórmulas de matriz son una de las funciones más poderosas de Excel. Si está familiarizado con las fórmulas de matriz, le alegrará saber que puede crear funciones VBA que devuelvan una matriz.

Devolver una serie de nombres de meses

Comencemos con un ejemplo simple. La función MonthNames devuelve una matriz de 12 elementos de, lo adivinó, nombres de meses.

Función MonthNames ()
  MonthNames = Array ("enero", "febrero", "marzo", _
   "Abril", "Mayo", "Junio", "Julio", "Agosto", _
   "Septiembre octubre Noviembre Diciembre")
Función final

Para usar la función MonthNames en una hoja de trabajo, debe ingresarla como una fórmula de matriz de 12 celdas. Por ejemplo, seleccione el rango A2: L2 e ingrese = MonthNames () . Luego presione Ctrl + Shift + Enter para ingresar la fórmula de matriz en las 12 celdas seleccionadas. Mira el resultado.

Trabajar con funciones de VBA que devuelven una matriz en Excel 2016

Usando la función MonthNames para devolver una matriz de 12 elementos.

Si desea que los nombres de los meses se muestren en una columna, seleccione 12 celdas en una columna y use esta fórmula de matriz. (No olvide ingresarlo presionando Ctrl + Shift + Enter).

= TRANSPONER (MonthNames ())

También puede elegir un solo mes de la matriz. Aquí hay una fórmula (no una fórmula de matriz) que muestra el cuarto elemento de la matriz: abril.

= INDICE (MonthNames (), 4)

Devolver una lista ordenada

Suponga que tiene una lista de nombres que desea mostrar ordenados en otro rango de celdas. ¿No sería bueno que una función de hoja de trabajo hiciera eso por usted?

Esta función personalizada hace exactamente eso: toma un rango de celdas de una sola columna como argumento y luego devuelve una matriz de esas celdas ordenadas. Rango A2: A13 contiene algunos nombres. Rango C2: C13 contiene esta fórmula de matriz multicelda. (Recuerde que debe ingresar la fórmula presionando Ctrl + Shift + Enter).

Trabajar con funciones de VBA que devuelven una matriz en Excel 2016

Usar una función personalizada para devolver un rango ordenado.

= Ordenado (A2: A13)

Aquí está el código para la función Ordenados:

Función ordenada (rango como rango)
  Dim SortedData () como variante
  Atenuar celda como rango
  Dim Temp como variante, i tan largo, j tan largo
  Dim No vacío siempre que
'Transferir datos a SortedData
  Para cada celda en Rng
    Si no está vacío (celda), entonces
      No vacío = No vacío + 1
      ReDim Preserve SortedData (1 a NonEmpty)
      SortedData (NonEmpty) = Cell.Value
    Terminara si
  Siguiente celda
'Ordenar la matriz
  Para i = 1 a No vacío
    Para j = i + 1 a no vacío
      Si SortedData (i)> SortedData (j) Entonces
        Temp = SortedData (j)
        SortedData (j) = SortedData (i)
        SortedData (i) = Temp
      Terminara si
    Siguiente j
  Siguiente yo
'Transponer la matriz y devolverla
  Sorted = Aplicación.Transponer (SortedData)
Función final

La función Sorted comienza creando una matriz denominada SortedData. Esta matriz contiene todos los valores que no están en blanco en el rango de argumentos. A continuación, se ordena la matriz SortedData mediante un algoritmo de clasificación de burbujas. Debido a que la matriz es una matriz horizontal, debe transponerse antes de que la función la devuelva.

La función ordenada funciona con un rango de cualquier tamaño, siempre que esté en una sola columna o fila. Si los datos no ordenados están en una fila, su fórmula debe usar la función TRANSPONER de Excel para mostrar los datos ordenados horizontalmente. Por ejemplo:

= TRANSPONER (Ordenado (A16: L16))

Cómo programar una reunión de Skype

Cómo programar una reunión de Skype

Aprenda a programar reuniones efectivas en Skype Empresarial desde Outlook o la aplicación de Skype. Siga nuestros sencillos pasos para una mejor colaboración.

Cómo usar Pegado especial en Excel 2016

Cómo usar Pegado especial en Excel 2016

Aprende a usar la función de Pegado Especial en Excel 2016 para optimizar la forma en que insertas datos en tus hojas de cálculo. Controla qué información se pega y realiza operaciones matemáticas simples con facilidad.

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Descubre las funciones de Excel para convertir entre binario, octal, decimal y hexadecimal con esta tabla informativa y consejos útiles para optimizar tu trabajo.

Instalar y activar un complemento de Power Query de Excel

Instalar y activar un complemento de Power Query de Excel

Completa guía sobre cómo instalar y activar el complemento de Power Query en Excel 2010 y 2013, y su uso en Excel 2016. Aprende a gestionar datos de manera efectiva en Excel.

Access 2019: Cómo editar y modificar una base de datos de Access

Access 2019: Cómo editar y modificar una base de datos de Access

Aprende a modificar y editar bases de datos en Access 2019, incluyendo cómo nombrar campos, agregar y eliminar campos, y definir tipos de datos. ¡Optimiza tu trabajo con Access!

Cómo usar el comando Ir a en Word 2016

Cómo usar el comando Ir a en Word 2016

El comando Ir a en Word 2016 es una herramienta poderosa para navegar rápidamente a una página específica o a elementos dentro del documento. Aprende a optimizar tu flujo de trabajo con este práctico comando.

Cómo resaltar fechas de fin de semana en Excel

Cómo resaltar fechas de fin de semana en Excel

Aprende cómo resaltar fechas de fin de semana en Excel utilizando formato condicional para mejorar la gestión de tus datos de programación.

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Aprenda a insertar un hipervínculo "mailto" en Excel 2010 para crear correos electrónicos de manera simple y eficiente.

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Aprenda a utilizar las opciones de pegado y Pegado especial en Word 2007 para manejar eficazmente bloques de texto. Optimizando su formato y presentación.

Cómo modificar un gráfico SmartArt en PowerPoint

Cómo modificar un gráfico SmartArt en PowerPoint

Descubre cómo modificar un gráfico SmartArt en PowerPoint incluyendo cambios de diseño, estructura y texto. Mejora tus presentaciones con estos consejos SEO.