Microsoft Excel 2007 - формула для заполнения ячейки C1 на основе ячейки A1 без списка?

395
Kenny

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

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

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

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

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

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

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

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

0

2 ответа на вопрос

1
Gary's Student

Это можно сделать с помощью макроса 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
Rajesh S

Поскольку вам не нужна формула для решения этой проблемы, то 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 тогда тогда Macro поместит Nopeв ячейке C1.

Замечания:

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

Похожие вопросы