Trabalhando com funções VBA que retornam uma matriz no Excel 2016

Trabalhando com funções VBA que retornam uma matriz no Excel 2016

As fórmulas de matriz são um dos recursos mais poderosos do Excel. Se você está familiarizado com fórmulas de array, ficará feliz em saber que pode criar funções VBA que retornam um array.

Retornando uma matriz de nomes de meses

Vamos começar com um exemplo simples. A função MonthNames retorna uma matriz de 12 elementos de - você adivinhou - nomes de meses.

Função MonthNames ()
  MonthNames = Array (“Janeiro”, “Fevereiro”, “Março”, _
   “Abril”, “maio”, “junho”, “julho”, “agosto”, _
   "Setembro Outubro Novembro Dezembro")
Função Final

Para usar a função MonthNames em uma planilha, você deve inseri-la como uma fórmula de matriz de 12 células. Por exemplo, selecione o intervalo A2: L2 e digite = MonthNames () . Em seguida, pressione Ctrl + Shift + Enter para inserir a fórmula de matriz em todas as 12 células selecionadas. Confira o resultado.

Trabalhando com funções VBA que retornam uma matriz no Excel 2016

Usando a função MonthNames para retornar uma matriz de 12 elementos.

Se você deseja que os nomes dos meses sejam exibidos em uma coluna, selecione 12 células em uma coluna e use esta fórmula de matriz. (Não se esqueça de digitá-lo pressionando Ctrl + Shift + Enter.)

= TRANSPOSE (MonthNames ())

Você também pode escolher um único mês da matriz. Aqui está uma fórmula (não uma fórmula de matriz) que exibe o quarto elemento da matriz: abril.

= INDEX (MêsNomes (), 4)

Retornando uma lista classificada

Suponha que você tenha uma lista de nomes que deseja mostrar em ordem de classificação em outro intervalo de células. Não seria bom ter uma função de planilha fazendo isso por você?

Essa função personalizada faz exatamente isso: pega um intervalo de células de uma única coluna como argumento e retorna uma matriz dessas células classificadas. Intervalo A2: A13 contém alguns nomes. Intervalo C2: C13 contém esta fórmula de matriz multicelular. (Lembre-se de que você deve inserir a fórmula pressionando Ctrl + Shift + Enter.)

Trabalhando com funções VBA que retornam uma matriz no Excel 2016

Usando uma função personalizada para retornar um intervalo classificado.

= Ordenado (A2: A13)

Este é o código para a função Sorted:

Função classificada (Rng como intervalo)
  Dim SortedData () como variante
  Dim Cell As Range
  Dim Temp As Variant, i As Long, j As Long
  Dim NonEmpty As Long
'Transferir dados para SortedData
  Para cada célula em Rng
    Se não estiver vazio (célula), então
      NonEmpty = NonEmpty + 1
      ReDim Preserve SortedData (1 para NonEmpty)
      SortedData (NonEmpty) = Cell.Value
    Fim se
  Próxima Célula
'Classificar a matriz
  Para i = 1 para não vazio
    Para j = i + 1 para não vazio
      If SortedData (i)> SortedData (j) Then
        Temp = SortedData (j)
        SortedData (j) = SortedData (i)
        SortedData (i) = Temp
      Fim se
    Próximo j
  Proximo eu
'Transpor a matriz e retorná-la
  Sorted = Application.Transpose (SortedData)
Função Final

A função Sorted começa criando uma matriz chamada SortedData. Esta matriz contém todos os valores não vazios no intervalo do argumento. Em seguida, a matriz SortedData é classificada, usando um algoritmo de classificação por bolha. Como a matriz é horizontal, ela deve ser transposta antes de ser retornada pela função.

A função classificada funciona com um intervalo de qualquer tamanho, desde que esteja em uma única coluna ou linha. Se os dados não classificados estiverem em uma linha, sua fórmula precisará usar a função TRANSPOSE do Excel para exibir os dados classificados horizontalmente. Por exemplo:

= TRANSPOSE (classificado (A16: L16))

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferece um conjunto completo de aplicativos Office que rivalizam com o Microsoft 365, especialmente em Excel, PowerPoint e Word. Ele permite que você gerencie seus projetos de forma mais eficaz e suporta diversos formatos de arquivo.

Baixar iTaxviewer 1.8.7

Baixar iTaxviewer 1.8.7

O software iTaxViewer é o software de leitura de arquivos XML mais popular atualmente. Este software é uma aplicação para leitura de declarações fiscais eletrónicas em formato XML da Direção Geral de Impostos.

Leitor de PDF Nitro

Leitor de PDF Nitro

Nitro PDF Reader é um prático editor de PDF que cobre todas as tarefas básicas que a maioria das pessoas realiza todos os dias com documentos PDF.

Leitor Foxit 12

Leitor Foxit 12

Foxit Reader é principalmente um leitor de PDF e também permite criar arquivos PDF, assiná-los, editá-los e adicionar anotações. Funciona em sistemas operacionais, existem plugins para diversos programas do pacote Microsoft Office.