Консультация № 102736
20.09.2007, 10:25
0.00 руб.
0 4 4
Уважаемые эксперты,

не могу решить один важный для меня вопрос.

У меня есть список подразделений организации, достаточно длинный. Он находится в столбце А. В столбцах В и С содержатся данные по этим подразделениям.

В столбце D напротив каждого филиала мне нужно автоматически проставлять слово "филиал", напротив каждого агентства - слово "агенство", в случае если это подразделение не является ни агенством, ни филиалом, то проставлять ничего не нужно.

То есть мне нужно реализовать программу, которая будет проверять, содержится ли в тексте ячейки столбца А текст "филиал" или "агенство", и если содержится, проставлять в данные в столбец D.

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

Кроме того, надо, чтобы программа заканчивала своё действие, как только наткнётся на первую пустую ячейку в столбце А.

Заранее благодарен за ответы

С уважением, Александр

Обсуждение

Неизвестный
20.09.2007, 10:55
общий
это ответ
Здравствуйте, Икрамов Александр Павлович!

Зачем так сложно. Можно решить гораздо проще.
Вставляем в ячейку D1 формулу:
<font color=Gray size=-2>см. Приложение.</font>

А потом применяем умное копирование на столько строк, сколько нужно.
В крайнем случае, можно разобрать конструкцию и склепать макрос-модуль.
Логику я показал.

<font color=Gray size=-2>Часть ответа удалена, как неимеющая отношения к вопросу.</font><p><fieldset style=‘background-color:#EFEFEF; width:80%; border:#777777 1px solid; padding:10px;‘ class=fieldset><font color=#777777><i></i>
-----
</font><font color=#777777 size=1><b>• Отредактировал: <a href=/info/user/9594 target=_blank>Maxim V. Tchirkine</a></b> (Академик)
<b>• Дата редактирования:</b> 20.09.2007, 11:34</font></fieldset>

Приложение:
=ЕСЛИ(ЕЛОГИЧ(ПОИСК("агентство";A1;1)=1);"агентство";ЕСЛИ(ЕЛОГИЧ(ПОИСК("филиал";A1;1)=1);"филиал";" "))
Неизвестный
20.09.2007, 18:48
общий
это ответ
Здравствуйте, Икрамов Александр Павлович!
Sub Макрос1()
Dim Наименование As String
Dim счётчик As Integer
Do
счётчик = счётчик + 1
Наименование = Worksheets("Лист1").Range("A" & счётчик)
If Наименование = "" Then Exit Do
If InStr(Наименование, "агентство") <> 0 Then Worksheets("Лист1").Range("D" & счётчик).Value = "Агентство"
If InStr(Наименование, "филиал") <> 0 Then Worksheets("Лист1").Range("D" & счётчик).Value = "Филиал"
Loop
End Sub

Можно и без макроса:
=ЕСЛИ(ЕОШИБКА(ПОИСК("агентство";A1)>0)=ИСТИНА;ЕСЛИ(ЕОШИБКА(ПОИСК("филиал";A1)>0)=ИСТИНА;"";"филиал");"агентство")
Неизвестный
21.09.2007, 22:05
общий
это ответ
Здравствуйте, Икрамов Александр Павлович!
Совсем случайно (как рояль в кустах:)) у меня есть готовое решение для Вас.
http://ifolder.ru/3435362
Это надстройуа Excel. После ее подключения, появляется пункт меню, вызывающий диалог. В диалоге указываете столбец поиска, искомый текст, целевой столбец и отобращаемую метку - "Выполнить" и все готово.
Удачи.
Евгений.
Неизвестный
24.09.2007, 13:59
общий
это ответ
Здравствуйте, Икрамов Александр Павлович!
Попробуй вот так:
=ЕСЛИ(ЕОШИБКА(ПОИСК("филиал";A1)>0);ЕСЛИ(ЕОШИБКА(ПОИСК("агенство";A1)>0);"";"агенство");"филиал")
Форма ответа