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))

Hoja inteligente 9.1.1

Hoja inteligente 9.1.1

Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.

Compartirpunto

Compartirpunto

SharePoint es un sistema de colaboración basado en web que utiliza una variedad de aplicaciones de flujo de trabajo, bases de datos de "listas" y otros componentes web, así como funciones de seguridad para dar control a los grupos empresariales que trabajan juntos.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar es una aplicación de visualización de calendario en su teléfono, que le ayuda a ver rápidamente la fecha lunisolar en su teléfono, organizando así su importante trabajo.

Outlook 2021

Outlook 2021

Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.

Haga clic arriba

Haga clic arriba

ClickUp es una de las plataformas de productividad mejor calificadas para cualquier empresa. Grandes empresas como Google, Booking.com, San Diego Padres y Uber utilizan ClickUp para aumentar la productividad en el lugar de trabajo.

Visor de PDF-XChange 2.5.322.10

Visor de PDF-XChange 2.5.322.10

PDF se ha convertido en un formato de uso común para leer, crear y enviar documentos de texto. A su vez, se ha producido un aumento en el número de programas utilizados para este tipo de documentación. PDF-XChange Viewer se encuentra entre un número creciente de visores de PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice ofrece un conjunto completo de aplicaciones de Office que rivalizan con Microsoft 365, especialmente en Excel, PowerPoint y Word. Le permite gestionar sus proyectos de forma más eficaz y admite varios formatos de archivo.

Descargar iTaxviewer 1.8.7

Descargar iTaxviewer 1.8.7

El software iTaxViewer es el software de lectura de archivos XML más popular en la actualidad. Este software es una aplicación de lectura de declaraciones electrónicas de impuestos en formato XML de la Dirección General de Tributación.

Lector de PDF Nitro

Lector de PDF Nitro

Nitro PDF Reader es un práctico editor de PDF que cubre todas las tareas básicas que la mayoría de las personas realizan todos los días con documentos PDF.

Lector Foxit 12

Lector Foxit 12

Foxit Reader es principalmente un lector de PDF y también le permite crear archivos PDF, firmarlos, editarlos y agregar anotaciones. Funciona en sistemas operativos, existen complementos para varios programas del paquete Microsoft Office.