Microsoft Excel 2007 - Fórmula para preencher a célula C1 com base na célula A1 sem uma lista?

0

Eu estou tentando escrever uma fórmula para fazer com que os dados de lugar do Excel em uma célula sejam baseados no conteúdo de uma célula diferente, MAS a fórmula não pode estar na célula onde o Excel coloca os dados.

Se pegarmos a fórmula abaixo e colocá-la na célula B1, ela funciona bem:      =IF(A1=1,"Okay","Nope")

Se eu digitar o número 1 na célula A1, o excel retornará OK na célula B1 e Nope se A1 estiver vazio ou tiver um número diferente.

Mas isso não é o que eu quero

Eu quero algo como Se A1 contiver o número 1, então o Excel deve colocar / preencher a célula C1 com a palavra "Ok"      =IF(A1=1,C1="Okay","")

Para ficar claro, isso não é atualizar a célula que contém a fórmula, dependendo do conteúdo de uma célula diferente; trata-se de colocar texto específico em uma célula diferente com base no conteúdo de outra célula sem a fórmula estar na célula onde o texto é colocado.

Parece uma tarefa tão simples para mim, mas não consigo descobrir como fazer isso acontecer.

Há algo que eu esteja sentindo falta?

    
por Kenny 07.10.2018 / 16:03

2 respostas

1

Isso pode ser feito com uma macro VBA:

Sub PutData()
    If Range("A1").Value = 1 Then
        Range("C1").Value = "Okay"
    Else
        Range("C1").Value = "Nope"
    End If
End Sub

Primeiro, digite um valor na célula A1 e, em seguida, execute a macro.

Se necessário:

  • a macro pode ser modificada para manipular várias células
  • a execução da macro pode se tornar automática, portanto, apenas alterar A1 fará com que a macro seja executada.
por 07.10.2018 / 16:40
0

Como você não deseja uma fórmula para o problema, o MACRO (código VBA) é a melhor solução. E para automatizar todo o processo, eu gostaria de recomendar Worksheet_change event em vez de simples MACRO.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.value = 1 Then
        Range("C1").value = "Okay"
     ElseIf Target.Address = "$A$1" And Target.value <> 1 Then
     Range("C1").value = "Nope"
    End If
End Sub 

Como funciona:

  • Copiar & Cole este código como módulo padrão.
  • Assim que você preencher a célula A1 com 1 , A macro colocará Okay na célula C1 , se a célula A1 está em branco ou tem outro valor que 1 então, o Macro colocará Nope na célula C1 .

Nota:

  • Ajustar referências de célula no código, conforme necessário e você pode substituir Nope por Blank ou qualquer outro valor também.
por 08.10.2018 / 06:48