Funções ESCOLHERLINS [CHOOSEROWS] e ESCOLHERCOLS [CHOOSECOLS].
Neste artigo, vais aprender a usar as funções ESCOLHERLINS [CHOOSEROWS] e ESCOLHERCOLS [CHOOSECOLS] para escolher e reter linhas ou colunas de um determinado intervalo, no Microsoft Excel. Vamos lá?
Efetivamente, dentro do conjunto de novas funções disponíveis no Microsoft Excel (versão 365), temos um par de funções que nos permite escolher, respetivamente, as linhas ou colunas que pretendemos reter de um intervalo.
Este conjunto de funções é útil quando, por exemplo, necessitamos de encolher uma matriz, de modo a reter apenas um determinado conjunto de linhas - ESCOLHERLINS [CHOOSEROWS] - ou um de colunas - ESCOLHERCOLS [CHOOSECOLS].
Estas duas funções são diferentes das funções que já abordei em tutoriais diferentes. Como é o caso das Funções DROP [EXCLUIR] e TAKE [INCLUIR]. Contrariamente às referidas, estas novas funções analisam o mapa ou matriz, pelas linhas/colunas individuais que pretendemos “escolher” e não excluir.
Assim sendo, vou te demonstrar uma abordagem fundamental a estas funções para que percebas como funcionam. Não percas todo o detalhe de cada uma delas em particular e, se tiveres alguma dúvida, envia-nos a tua mensagem... ficamos à espera!
FUNÇÃO ESCOLHERLINS [CHOOSEROWS]
A função ESCOLHERLINS [CHOOSEROWS] permite então devolver linhas específicas de uma matriz ou intervalo.
Sintaxe da função:
=ESCOLHERLINS(matriz;núm_linha1;[núm_linha2];…)
Matriz: Argumento obrigatório. Definimos a matriz (intervalo) que contem as linhas que pretendemos escolher (devolver).
núm_linha1: O primeiro número de linha a ser devolvido. Também é um argumento obrigatório, uma vez que necessitamos de devolver pelo menos 1 linha.
Os restantes argumentos, opcionais, representam as outras linhas selecionadas, que podem ser definidas.
Notas sobre a função:
- A função devolve um erro do tipo #VALOR se o valor absoluto de qualquer um dos argumentos núm_linha for zero ou exceder o número de linhas na matriz.
- Em cada um dos argumentos núm_linha1; [núm_linha2] podemos definir uma constante de array indicando múltiplas linhas em grupos. Por exemplo: {1;3;5};{7;9;11}.
No exemplo temos a seguinte Tabela denominada “MARCAS”. Desta tabela vamos obter um novo intervalo (Array Dinâmico) composto apenas por algumas linhas da nossa tabela.
Executamos a função para devolver no intervalo apenas as linhas selecionadas: 1, 4 e 6.
Resultando num novo intervalo apenas com as linhas selecionadas.
Devolver grupos de linhas com constante de array…
No próximo exemplo vou criar 2 grupos de linhas, com constantes de arrays. Um grupo composto pelas linhas 2, 4 e 6 e um segundo grupo composto pelas linhas 8 e 10.
As constantes de array são definidas respetivamente no argumento núm_linha1 e núm_linha2.
O resultado mostra o novo intervalo com as linhas selecionadas.
Devolver um intervalo de linhas “dinâmico”
No próximo exemplo vou já utilizar outras funções que permitem escolher as linhas de uma forma dinâmica. Neste caso o pretendido é selecionar apenas a primeira linha de cada marca de produto, ou seja, a primeira ocorrência ou venda de cada produto.
Para este cenário vou usar a função CORRESPX [XMATCH] que permite retornar um número, neste caso uma posição de um valor que procuramos. A função CORRESPX é útil neste caso porque permite devolver a primeira ocorrência de um valor ou a última ocorrência, caso pretendamos obter não a primeira venda, mas sim a última venda.
Vou começar por obter uma lista única de marcas, utilizando a função EXCLUSIVOS [UNIQUE].
Com esta lista exclusiva podemos usar a função CORRESPX [XMATCH] para encontrar a primeira ocorrência de cada uma das marcas.
=ESCOLHERLINS(MARCAS;CORRESPX(P5#;MARCAS[Marca];0;1))
A função retorna então apenas a primeira linha de cada grupo.
Se pretendermos obter a última linha de cada grupo, a função CORRESPX [XMATCH] resolve o cenário, com o último argumento [-1]
=ESCOLHERLINS(MARCAS;CORRESPX(P5#;MARCAS[Marca];0;-1))
Devolver um intervalo de linhas par ou ímpar (linha sim, linha não)
Neste cenário vamos obter um conjunto de linhas alternadas. Para esta solução o fundamental é assegurar que o número de linhas devolvido não ultrapassa o número máximo de linhas da tabela, pois neste caso a função devolve o erro de valor: #VALOR, ou seja, se o valor absoluto de qualquer um dos argumentos núm_linha for zero ou exceder o número de linhas na matriz.
Para este exemplo podemos utilizar outra função útil para obter todas as linhas pretendidas, neste caso, com a função SEQUÊNCIA [SEQUENCE] que gera uma serie de números.
=ESCOLHERLINS(MARCAS;SEQUÊNCIA(8;1;1;2))
A função resulta num intervalo com 8 linhas devolvidas, onde a sequência de 2 em 2 não ultrapassa o limite máximo de linhas do intervalo original (16 linhas para 19 no total).
FUNÇÃO ESCOLHERCOLS [CHOOSECOLS]
A função ESCOLHERCOLS [CHOOSECOLS] é irmã da função anterior, mas que apenas trabalha sobre as colunas de uma tabela. Permite então devolver colunas específicas de uma matriz ou intervalo.
Sintaxe da função:
=ESCOLHERCOLS(matriz;núm_coluna1;[núm_coluna2];…)
Matriz: Argumento obrigatório. Definimos a matriz (intervalo) que contem as colunas que pretendemos escolher (devolver).
núm_coluna1: O primeiro número de coluna a ser devolvido. Também é um argumento obrigatório, uma vez que necessitamos de devolver pelo menos 1 coluna.
Os restantes argumentos, opcionais, representam as outras colunas selecionadas, que podem ser definidas.
Notas sobre a função:
- A função devolve um erro do tipo #VALOR se o valor absoluto de qualquer um dos argumentos núm_coluna for zero ou exceder o número de colunas na matriz.
- Em cada um dos argumentos núm_coluna1; [núm_coluna2] podemos definir uma constante de array indicando múltiplas colunas em grupos. Por exemplo: {1;3;5};{7;9;11}.
No exemplo da função ESCOLHERCOLS [CHOOSECOLS] vou apenas aproveitar um dos intervalos dinâmicos resultantes dos exemplos anteriores, para criar um intervalo, sobre o qual irei reduzir, ou selecionar apenas as colunas que pretendo para o relatório.
Neste caso, apenas as colunas com o a marca, quantidade e total em €, respetivamente as colunas 1, 5 e 6 do intervalo.
Começamos por definir o cabeçalho do novo intervalo de forma dinâmica…
=ESCOLHERCOLS(I13:N13;1;5;6)
E de seguida criamos a mesma fórmula para devolver os restantes valores…
=ESCOLHERCOLS(I14#;{1;5;6})
Neste caso foi usado o array já definido [I14#] e uma constante de array para devolver no mesmo grupo todas as colunas pretendidas {1;5;6}. E o resultado é o apresentado.
Em resumo com ambas as funções podemos obter excertos ou partes de intervalos pela seleção de linhas ou colunas.
Outros conteúdos relevantes:
Aprende a usar a função INDIRETO no Excel!
Vê aqui como usar a função INDIRETO no Microsoft Excel e aprende a criar intervalos dinâmicos nos teus Dashboards.
Microsoft Excel: Utilizar botões de opção no Excel!
Neste novo vídeo, vou mostrar-te como podes utilizar botões de opção (comandos que, habitualmente, são usados em formulários) no Microsoft Excel! Vamos lá?