Preenchimento automático inteligente para baixo e para a direita

Conteúdo

Até agora, às vezes com um sorriso me lembro de um dos meus primeiros treinamentos corporativos de campo há 10 anos.

Imagine: the open space office of the representative office of an international FMCG company, huge as a football field. Chic design, expensive office equipment, dress code, expats cooing in the corners – that’s all 🙂 In one of the meeting rooms, I start a two-day advanced training on the then current version of Excel 2003 for 15 key employees of the economic department, along with their leader. We get acquainted, I ask them about business tasks, problems, I ask them to show several typical work files. They show the kilometer length of unloading from SAP, the sheets of reports that they make on this, etc. Well, it’s a familiar thing – I mentally figure out topics and timing, adjust to the audience. Out of the corner of my eye, I notice how one of the participants, demonstrating a piece of his report, patiently pulls the cell with the formula down by the black cross in the lower right corner for several thousand lines, then skips the end of the table on the fly, pulls it back, etc. Unable to stand it, I interrupt him curling the mouse around the screen and show a double-click on the black cross, explaining about auto-completion down to the stop. 

De repente, percebo que o público está desconfiado e todo mundo está olhando para mim de forma estranha. Olho imperceptivelmente ao meu redor sempre que posso – está tudo bem, meus braços e pernas estão no lugar, minha braguilha está abotoada. Rebobino mentalmente minhas últimas palavras em busca de alguma cláusula terrível – não havia nada de criminoso, ao que parece. Depois disso, o chefe do grupo se levanta silenciosamente, aperta minha mão e diz com uma cara de pedra: “Obrigado, Nikolai. Este treinamento pode ser concluído.

Bem, resumindo, descobriu-se que nenhum deles tinha a menor ideia de clicar duas vezes em uma cruz preta e preencher automaticamente. De alguma forma aconteceu historicamente que não havia ninguém para lhes mostrar uma coisa tão simples, mas necessária. Todo o departamento puxou fórmulas manualmente para milhares de linhas, coitados. E aqui estou eu. Cena do óleo. O chefe do departamento então pediu muito para não revelar o nome de sua empresa a ninguém 🙂

Várias vezes depois houve situações semelhantes, mas apenas com ouvintes individuais – a maioria agora, é claro, conhece essa função. 

Preenchimento automático inteligente para baixo e para a direitaA questão é diferente. Após a primeira alegria de dominar um recurso tão maravilhoso, a maioria dos usuários entende que a cópia automática de fórmulas clicando duas vezes na cruz preta (marcador de preenchimento automático) tem todos os aspectos positivos e negativos:

  • A cópia nem sempre acontece no final da tabela. Se a tabela não for monolítica, ou seja, houver células vazias em colunas adjacentes, não é fato que o preenchimento automático funcionará até o final da tabela. Muito provavelmente, o processo irá parar na célula vazia mais próxima antes de chegar ao final. Se houver células ocupadas por algo abaixo da coluna, o preenchimento automático parará exatamente nelas.
  • Ao copiar espólios de design de célula, porque por padrão, não apenas a fórmula é copiada, mas também o formato. Para corrigir, clique no botão de opções de cópia e selecione Somente valores (Preencher sem formato).
  • Não há uma maneira rápida de também esticar convenientemente a fórmula não para baixo, mas para a direitaexceto para puxar com a mão. Clicar duas vezes na cruz preta está logo abaixo.

Vamos tentar corrigir essas deficiências com uma macro simples.

Pressione o atalho de teclado para a esquerda Alt + F11 ou botão Visual Basic aba revelador (Desenvolvedor). Insira um novo módulo vazio via menu Inserir - Módulo e copie o texto dessas macros lá:

Sub SmartFillDown() Dim rng As Range, n As Long Definir rng = ActiveCell.Offset(0, -1).CurrentRegion If rng.Cells.Count > 1 Then n = rng.Cells(1).Row + rng.Rows. Contagem - ActiveCell.Row ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Type:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(-1, 0).CurrentRegion If rng.Cells.Count > 1 Then n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Destino:=ActiveCell.Resize(1, n), Tipo: =xlFillValues ​​End If End Sub  

Tais macros:

  • pode preencher não apenas para baixo (SmartFillDown), mas também para a direita (SmartFillRight)
  • não estrague o formato das células abaixo ou à direita – apenas a fórmula (valor) é copiada
  • células adjacentes vazias são ignoradas e a cópia ocorre exatamente no final da tabela, e não na lacuna mais próxima nos dados ou na primeira célula ocupada.

Para maior comodidade, você pode atribuir atalhos de teclado a essas macros usando o botão Macros – Opções (Macros — Opções) ali mesmo na aba. revelador (Desenvolvedor). Agora será suficiente inserir a fórmula ou valor desejado na primeira célula da coluna e pressionar a combinação de teclas especificada para que a macro preencha automaticamente toda a coluna (ou linha):

Beleza.

PS Parte do problema de copiar fórmulas para o final da tabela foi resolvido no Excel 2007 com o advento das “tabelas inteligentes”. É verdade que eles nem sempre e nem em todos os lugares são apropriados. E à direita, o Excel nunca aprendeu a copiar sozinho.

  • O que são macros, como usá-las, onde obter o código do Visual Basic e onde colá-lo.
  • Tabelas inteligentes no Excel 2007-2013
  • Copiar fórmulas sem deslocamento de link

Deixe um comentário