Вопрос № 142967: Добрый день, в ячейках таблицы есть перечень номеров, например в таких форматах: а)несколько строк с разделителями ; и переносом строки "160; 106; 5037;" б)строка с разделителями ; и пробелами: 160; 106;503...
Вопрос № 142.967
Добрый день,
в ячейках таблицы есть перечень номеров, например в таких форматах:
а)несколько строк с разделителями ; и переносом строки "160; 106; 5037;"
б)строка с разделителями ; и пробелами: 160; 106;5037;
в)любой из этих двух форматов
Нужно вернуть количество номеров, записанных в ячейке. Как это сделать?
Отвечает: megaloman
Здравствуйте, Владимир Яковлев!
Я не придумал, как решить задачу стандартными функциями Excel Поэтому предлагаю решение, связанное с функцией, определенной пользователем. У меня Office2003, решение совместимо с Office XP, 2000. За Office2007 отвечать не берусь, не пробовал.
Идея решения: подсчитаем в Вашей строке число разделителей, которое, в соответствии с постановкой Вами задачи, соответствует числу номеров
Реализация решения:
1. Определяем функцию пользователя. Я
назвал её CountSeparator (регистр важен, как напишем, так надо и использовать) Естественно, Вы вольны назвать её как угодно Вам.
Прежде всего: В таблице Excel - Сервис-Макрос-Безопасность выставьте уровень безопасности не выше среднего. Должен отметить, эта настройка скажется на уровне безопасности для всех обрабатываемых Вами на этом компе таблиц.
Далее: Сервис-Макрос-Редактор VisualBasic - Insert -Module - В открывшемся справа окне вносим текс
т функции CountSeparator. (текст привожу в приложении, можете его оттуда скопировать). Закроем Редактор VisualBasic
2. Использование функции - совершенно такое же, как и стандартной функции. Например, если в ячейке A1 содержится строка 160; 106;5037; то в соседней ячейке формула =CountSeparator(A1;";") вернёт значение 3 Первый аргумент функции CountSeparator должен содержать строку (или ссылку на клетку со строкой) Второй аргумент функции должен содержать символ, который
служит разделителем. Функция отрабатывает все приведенные Вами примеры.
Задача решена.
Приложение:
--------- Нет времени на медленные танцы
Ответ отправил: megaloman (статус: Практикант)
Ответ отправлен: 03.09.2008, 22:22