Темы статей
Выбрать темы

Как получить инициалы

Редакция БК
Ответы на вопросы

Как получить инициалы

 

Уважаемые сотрудники «Б & K»! Помогите мне решить такую проблему. Есть база данных в формате MS Excel. В одной из колонок этой базы записаны фамилии, имена и отчества сотрудников. Например, «Петров Иван Иванович». Мне нужно преобразовать эту колонку, заменив имена и отчества на инициалы. То есть вместо «Петров Иван Иванович» в колонке после преобразования должно стоять значение «Петров И. И.». Подскажите, как быстро справиться с такой задачей? Каждый раз исправлять вручную сотни фамилий не хочется! Заранее благодарю.

В. Соловьев, главный бухгалтер, г. Харьков

Отвечает

Николай КАРПЕНКО, канд. техн. наук, доцент кафедры прикладной математики и информационных технологий Харьковской национальной академии городского хозяйства

 

Решить описанную проблему можно, причем несколькими методами. Например, можно получить фамилии с инициалами при помощи специальной формулы. Такое решение мы предлагали в «Б & К», № 19 (67), 2009. Можно обратиться к возможностям языка VBA (Visual Basic for Application) и написать для обработки данных небольшую программу. Однако все эти способы имеют свои недостатки: формула получается довольно громоздкой, а для работы с VBA нужны определенные навыки. Поэтому сейчас я хочу предложить другой способ решения проблемы, который основан на работе с формулами и Мастером текстов.

Итак, перед нами фрагмент базы данных, изображенный на рис. 1. В колонке «

B» с заголовком «ФИО» записаны фамилия, имя и отчество сотрудника. Мы должны преобразовать значения этой колонки, оставив в ней фамилии и инициалы. Делаем так:

1) справа от столбца «

ФИО» добавляем еще две колонки. В нашем примере это будут столбцы «С» и «D»;

2) щелкаем на колонке «

B» (выделяем ее);

3) вызываем меню «

Данные → Текст по столбцам…». Появится первое окно работы с Мастером текстов, как на рис. 2;

img 1

 

img 2

4) в этом окне переключатель «Укажите формат данных:» ставим в положении «с разделителями»;

5) нажимаем «Далее». Появится окно настроек Мастера текстов, как на рис. 3;

img 3

6) здесь включаем флажок «другой:»;

7) в поле для разделителя вводим символ « » (пробел);

8) включаем флажок «Считать последовательные разделители одним» (рис. 3). Это нужно сделать для того, чтобы Мастер текстов правильно обработал ситуацию, когда между фамилией, именем и отчеством встречается несколько пробелов;

9) нажимаем кнопку «Готово». Результат нашей работы показан на рис. 4. Теперь фамилия сотрудника, его имя и отчество находятся в отдельных колонках. Нам остается выделить из имени и отчества инициалы и объединить их с фамилией при помощи формулы. Сделаем это в колонке «F»;

img 4

10) в ячейку «F2» вводим формулу «=B2&" "&ПСТР(C2;1;1)&". "&ПСТР(D2;1;1)&"."»;

11) копируем ее на всю высоту таблицы. Остается перенести формулу в колонку «B» и удалить все лишнее;

12) щелчком мыши на заголовке выделяем колонку «F»;

13) копируем ее в буфер обмена («Ctrl+C»);

14) выделяем колонку «B»;

15) вызываем «Правка → Специальная вставка…». Появится окно настройки параметров специальной вставки;

16) переключатель «Вставить» ставим в положение «значения» (рис. 5);

img 5

17) нажимаем «ОК»;

18) удаляем колонки «C», «D», «F» (имена, отчества и рабочий столбец);

19) в ячейку «B1» пишем заголовок «ФИО» (мы его удалили при вставке значений). Результат нашей работы показан на рис. 6.

img 6

Небольшой комментарий по поводу формулы. Напомню, что в документе на рис. 4 она выглядит так: «=B2&" "&ПСТР(C2;1;1)&". "&ПСТР(D2;1;1)&"."». Ключевым инструментом в ней является функция «ПСТР(Текст, НПоз,КолЗн)». У нее три параметра: «Текст», «НПоз» и «КолЗн». Функция возвращает указанное число знаков «КолЗн» из строки «Текст» начиная с позиции «НПоз». Например, формула «ПСтр("Петров";2;2)» вернет результат «ет». Таким образом, в формуле выражение «ПСТР(C2;1;1)» выделит из текста «Оксана» (рис. 4, ячейка «C2») символ «О». При помощи операции сцепления («&») к этому результату добавляем символ «.» (точка). То есть выражение «ПСТР(C2;1;1)&"."» возвращает результат «О.» — это первый символ инициалов для сотрудника «Алексеева Оксана Сергеевна». Часть формулы «ПСТР(D2;1;1)&"."» вернет для этого сотрудника вторую часть инициалов («С.»). Соединив операцией «&» фамилию и обе части инициалов, получим «Алексеева О.С.».

И наконец, посмотрим, какое преимущество мы получили от использования Мастера текстов? На самом деле очень большое. Мастер текстов существенно упростил формулу для решения задачи. Вот формула, которая решает нашу задачу без использования Мастера текстов: «=Если(Сжпробелы(A1)="";""; Пстр(Сжпробелы(A1);1;Найти(" ";Сжпробелы(A1);1))&Пстр(Пстр(Сжпробелы(A1);Найти(" ";Сжпробелы(A1);1)+1;Длстр(Сжпробелы(A1)));1;1)&"."& Пстр(Пстр(Пстр(Сжпробелы(A1); Найти(" ";Сжпробелы(A1);1)+1;Длстр(Сжпробелы(A1))); Найти(" ";Пстр(Сжпробелы(A1); Найти(" "; Сжпробелы(A1);1)+1;Длстр(Сжпробелы(A1)));1)+1; Длстр(Пстр(Сжпробелы(A1); Найти(" ";Сжпробелы(A1);1)+1;Длстр(Сжпробелы(A1))))); 1;1)&".")». Большинство функций в этом выражении направлено на удаление лишних пробелов, а также на поиск первого символа в имени и отчестве. Флажок «Считать последовательные разделители одним» в настройках Мастера текстов автоматически снимает проблему устранения лишних пробелов. Он их просто убирает в процессе обработки данных. Кроме того, при помощи Мастера текстов мы перенесли имена и отчества в разные колонки рабочего листа. Благодаря этому никакие функции поиска в тексте нам не понадобились, а формула стала намного проще.

 

Жду ваших вопросов, замечаний и предложений на

bk@id.factor.ua , nictomkar@rambler.ru или на форуме редакции www.bk.factor.ua/forum . Удачной работы!
App
Скачайте наше мобильное приложение Factor

© Factor.Media, 1995 -
Все права защищены

Использование материалов без согласования с редакцией запрещено

Ознакомиться с договором-офертой

Присоединяйтесь
Адрес
г. Харьков, 61002, ул. Сумская, 106а
Мы принимаем
ic-privat ic-visa ic-visa

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

Спасибо, что читаете нас Войдите и читайте дальше