Я пытаюсь написать формулу, чтобы Excel поместил данные в ячейку на основе содержимого другой ячейки, НО формула не может быть в ячейке, где Excel помещает данные.

Если мы возьмем приведенную ниже простую формулу и поместим ее в ячейку B1, она будет работать нормально:=IF(A1=1,"Okay","Nope")

Если я наберу число 1 в ячейке A1, то Excel вернет Okay в ячейке B1 и Nope, если A1 пусто или имеет другой номер.

Но это не то, что я хочу

Я хочу что-то вроде Если A1 содержит число 1, то Excel должен поместить / заполнить ячейку C1 со словом "Хорошо" =IF(A1=1,C1="Okay","")

Чтобы было ясно, это не обновляет ячейку, которая содержит формулу, в зависимости от содержимого другой ячейки, речь идет о размещении определенного текста в другой ячейке на основе содержимого другой ячейки без формулы, находящейся в ячейке, в которой находится текст.

Это кажется мне такой простой задачей, но я не могу понять, как это сделать.

Есть что-то, чего мне не хватает?

2 ответа2

1

Это можно сделать с помощью макроса VBA:

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

Сначала введите значение в ячейку A1, а затем запустите макрос.

Если необходимо:

  • макрос может быть изменен для обработки нескольких ячеек
  • выполнение макроса может быть сделано автоматически, поэтому простое изменение A1 вызовет запуск макроса.
0

Поскольку вам не нужна формула для решения этой проблемы, то MACRO (код VBA) является лучшим решением. И чтобы автоматизировать весь процесс, я бы рекомендовал Worksheet_change event а не простое 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 

Как это устроено:

  • Скопируйте и вставьте этот код как стандартный модуль.
  • Как только вы заполняете ячейку A1 1 макрос помещает Okay в ячейку C1 , если ячейка A1 пуста или имеет любое значение, отличное от 1 то макрос помещает Nope в ячейку C1 .

Замечания:

  • При необходимости измените ссылки на ячейки в коде, и вы также можете заменить Nope на Blank или любое другое значение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .