Aplique uma fórmula a todas as células selecionadas

0

Portanto, no Excel 2013 (v15.x), ainda não existe uma maneira de aplicar uma fórmula arbitrária a todas as células selecionadas ou estou sentindo falta dela? A coisa mais próxima que vejo aqui na pesquisa é a resposta a esta pergunta:

Como você aplica uma função a todos os valores nas células selecionadas?

... no qual você seleciona um número em uma célula, em seguida, Colar Especial em um novo intervalo de células e, em Colar Especial, você pode selecionar Adicionar, Subtrair, Multiplicar ou Dividir.

Mas muitas vezes preciso de uma fórmula complexa na qual a única variável possa ser a própria célula. Um aplicativo é preparar uma planilha recebida para importação para SQL ou algum outro contexto.

Portanto, para modificar um intervalo de células na coluna A (digamos, troque as primeiras / últimas palavras dentro de cada célula e substitua a pontuação), execute todas as etapas a seguir:

  1. Insira uma nova coluna B ao lado de A. (ou trabalhe em uma área em branco da folha.)

  2. Coloque minha fórmula em B1 referenciando A1, por exemplo.

  3. Arraste e preencha a fórmula até a Coluna B, conforme necessário, e verifique os resultados conforme o esperado.

  4. Ctrl-C para selecionar o intervalo agora destacado em B.

  5. Clique com o botão direito do mouse na primeira célula do intervalo correspondente em A.

  6. Selecione Colar Especial> Valores e verifique os resultados.

  7. Exclua a coluna B (ou qualquer intervalo intermediário que eu usei).

Agora certamente o número 7 tem várias propriedades mágicas historicamente reverenciadas, mas continuo pensando que essa não pode ser a maneira certa ou mais simples em 2015, na planilha líder de mercado, para fazer algo que preciso com tanta frequência. Todo mundo não? Eu tenho que estar ignorando um atalho que todo mundo conhece, exceto eu.

E se for apenas uma função interna simples como UPPER ()? Existe alguma maneira de fazer isso em uma seleção sem criar uma cópia intermediária ou uma macro?

Se, de alguma forma, não sou apenas eu, alguma das alternativas como o LibreCalc fornece um atalho direto?

NA EDIÇÃO: Relendo minha pergunta depois de ver uma resposta, suspeito que não tenha sido claro o suficiente que o objetivo de aplicar a fórmula à célula A14 (entre muitas), por exemplo, é calcular um novo valor para A14 derivado do valor original de A14 e deixe apenas um valor (não uma fórmula) na célula. Por exemplo, o valor de cada célula pode se tornar valor & "- obs", isto é ("ABC" se torna "ABC-obs") ou algo mais complicado que isso. Mas acho que a essência do problema é lidar com a auto-referência intencional para 1 iteração, armazenando o valor de uma fórmula e não a própria fórmula.

Timberline
fonte

Respostas:

0

Se as células já estiverem selecionadas, basta pressionar CTRL+ ENTER. Você também pode arrastar o quadrado no canto inferior direito da célula depois de pressionar, ENTERse esquecer.

Além disso, ao especificar uma célula. Se você colocar um $na frente da coluna, da linha ou da coluna ou da linha, permanecerá o mesmo para todos os itens. Caso contrário, essa linha ou coluna será relativa ao valor na célula atual. Por exemplo, se você A1:C4selecionou e digitou =D1a fórmula para A1e pressione CTRL+ ENTER, os valores em D1:F4serão usados ​​nas células correspondentes. Se você usar =$D$1, em seguida, todas as células usará o valor no D1.

ATUALIZAR

A única maneira que estou ciente de fazer o que você deseja sem usar valores intermediários é usar o VBA. A função básica que você deseja é simples. Vai parecer algo assim:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Intersect(Target, Range("A1:C100")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Target = UCase(Target)
    Application.EnableEvents = True
End Sub

Apenas substitua a linha Target = UCase(Target)pelo que você deseja fazer.

krowe
fonte
BTW, um pouco de trivialidades, esse recurso costuma ser creditado como o primeiro recurso matador de aplicativos para PCs. en.wikipedia.org/wiki/VisiCalc
krowe
OK, então Ctrl-Enter é uma alternativa mais flexível ao preenchimento por arraste, pois, ao contrário de arrastar a alça de preenchimento, ele pode preencher seleções descontínuas. Mas e o problema de auto-referência? Se eu quiser sufocar o conteúdo de todas as células selecionadas em A com "-obs", usando meu método de 7 etapas, dou a B1 a fórmula = A1 & "- obs" e prossigo com o restante das etapas para eventualmente "Colar valores" meus resultados de B voltam para a coluna A. Como aplicaria essa fórmula diretamente para que cada célula termine não com uma fórmula circular, mas com um valor (apenas) de aplicar a fórmula uma vez?
Timberline
OK, tentarei sua atualização amanhã e volto. Eu acho que o ideal é criar um pop-up que solicite uma expressão e atribua Target = Evaluate (expr).
Timberline