Теми статей
Обрати теми

Як отримати ініціали

Редакція БК
Відповідь на запитання

Як отримати ініціали

 

Шановні працівники «Б & K»! Допоможіть мені вирішити таку проблему. Є база даних у форматі MS Excel. В одній із колонок цієї бази записані прізвища, імена та по батькові працівників. Наприклад, «Петров Іван Іванович». Мені потрібно перетворити цю колонку, замінивши імена та по батькові на ініціали. Тобто замість «Петров Іван Іванович» у колонці після перетворення має значитися «Петров І. І.». Підкажіть, як швидко впоратися з таким завданням? Кожного разу виправляти вручну сотні прізвищ не хочеться! Наперед завдячую.

В. Соловйов, головний бухгалтер, м. Харків

Відповідає

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

 

Вирішити описану проблему можна, причому декількома методами. Наприклад, можна отримати прізвища з ініціалами за допомогою спеціальної формули. Таке рішення ми пропонували в «

Б & К», 2009, № 19. Можна звернутися до можливостей мови VBA (Visual Basic for Application) та написати для обробки даних невелику програму. Однак усі ці способи мають свої недоліки — формула виходить досить громіздкою, а для роботи з VBA потрібні певні навички. Тому зараз я хочу запропонувати інший спосіб вирішення проблеми, який засновано на роботі з формулами та Майстром текстів.

Отже, перед нами фрагмент бази даних, зображений на рис. 1. У колонці «

B» із заголовком «ФИО» записано прізвище, ім’я та по батькові працівника. Ми повинні перетворити значення цієї колонки, залишивши в ній прізвища та ініціали. Робимо так:

img 1

1)  праворуч від стовпця «ФИО» додаємо дві колонки. У нашому прикладі це будуть стовпці «С» і «D»;

2) клацаємо по колонці «B» (виділяємо її);

3) викликаємо меню «Данные → Текст по столбцам…». З’явиться перше вікно роботи з Майстром текстів, як наведено на рис. 2;

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-файли, щоб зробити сайт максимально зручним для вас та аналізувати використання наших продуктів та послуг, щоб збільшити якість рекламних та маркетингових активностей. Дізнатися більше про те, як ми використовуємо ці файли можна тут.

Дякуємо, що читаєте нас Увійдіть і читайте далі