Сложная инструкция If

#excel #vba

#excel #vba

Вопрос:

Мне трудно решить проблему.

Цель состоит в том, чтобы посмотреть на столбец B. Если, скажем, ячейка B1 содержит «Определенный текст» или «Определенный текст 2», то ячейка непосредственно слева от нее A1 в этом случае должна возвращать «Определенный текст 3», иначе «Определенный текст 4». Этот процесс продолжается для всех строк в столбце B.

Пожалуйста, обратите внимание, что у меня около 65 000 строк.

Спасибо

Комментарии:

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

2. Если возможно заставить функцию работать с помощью одной кнопки, то я с удовольствием это сделаю.

3. Вы можете записать ее в первой строке и дважды щелкнуть по правому нижнему углу, чтобы переместить ее в последний.

Ответ №1:

Поместите это в формат A1 и дважды щелкните «дескриптор заполнения».

 =IF(OR(B1={"Certain Text", "Certain Text 2"}), "Certain Text 3", "Certain Text 4")
  

Комментарии:

1. отсутствует ) после } , я думаю

2. Узнал кое-что новое с фигурными скобками там! Но замедлит ли использование массива файл с 65 тысячами строк? Почему бы не использовать =IF(OR(B1=“Certain Text”,B1=“Certain Text”), “Certain Text 3”, “Certain Text 4”)

3. Нет, массив строковых литералов больше не замедлит работу, чем выполнение двух условий ИЛИ. Это могло бы быть ускорено, если бы преобладало одно условие; скажем, 90% должно было составлять «Определенный текст», тогда вложенные условия с «Определенным текстом» сначала были бы быстрее.

4. Большое вам всем спасибо за вашу помощь. Это сработало.