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

OpenOffice: отвечаем на вопросы. Как получить инициалы. Как вычислить квартал по дате

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

OpenOffice: отвечаем на вопросы

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

 

Уважаемая редакция! Всем предприятием мы перешли на бесплатный OpenOffice, но, как говорится, не обошлось без проблем. Возникла такая задача. Есть база, в определенной колонке которой записаны фамилии, имена и отчества сотрудников (полностью). Нужно получить их фамилии и инициалы, т. е. вместо «Иванов Иван Иванович» написать «Иванов И. И.». Попробовал найти подходящую функцию в Calc, но ничего не получилось. Как быть? Заранее благодарю.

И. Ф. Прохоров, г. Харьков

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

 

У этой задачи есть, как минимум, два способа решения. Первый — при помощи формул. Второй — с применением инструмента «

Текст по столбцам». Начнем со второго варианта. На мой взгляд, он проще и его легче повторить.

Первым делом создадим файл и запишем в него исходные данные, как показано на рис. 1. Для примера я напечатал в ячейку «

A1» текст «Иванов Иван Иванович». Делаем так:

img 1

1) добавляем справа от колонки с фамилией два столбца. В примере эти столбцы и так пустые, поэтому ничего добавлять не придется. Но в реальной базе без этой операции не обойтись: справа от фамилии наверняка будут находиться другие данные;

2) выделяем колонку с фамилией. В нашем случае это колонка «А»;

3) вызываем меню «Данные → Текст по столбцам…». Появится окно, как на рис. 2 на с. 31;

img 2

4) находим группу «Параметры разделителя» и ставим флажок слева от параметра «Пробел»;

5) включаем флажок «Объединить разделители»;

6) нажимаем «ОК». Текст «Иванов Иван Иванович» Calc разделил на три части. В ячейку «B1» он перенес имя «Иван», в ячейку «С1» — отчество «Иванович»;

7) становимся на ячейку «D1»;

8) вводим в нее формулу «=A1&" "&LEFT(B1;1)&"."&LEFT(C1;1)&"." ». В ячейке «D1» появится значение «Иванов И.И.».

Все, что остается сделать, — это скопировать колонку «D» в буфер обмена и затем вставить ее на то же место как значение. После этого колонки «B» и «С» можно удалить.

Пару слов о настройках Мастера текстов программы Calc и о работе формулы.

Флажок возле параметра «Пробел» указывает Calc, какой символ в строке нужно использовать как разделитель. Вы можете выбрать один из пяти стандартных разделителей или воспользоваться вариантом «Другие».

Флажок «Объединить разделители» означает, что несколько подряд идущих символов-разделителей Calc будет воспринимать как один. Мы включили этот параметр на тот случай, если между фамилией, именем и отчеством встретятся несколько пробелов.

Теперь о работе формулы. Функция «LEFT(Строка, Кол)» вырезает из текста «Строка» левые «Кол» символов. Например, если в «B1» записан текст «Иван», то «LEFT(B1;1)» вернет значение «И». Операция «&» служит для объединения нескольких строк в одно целое. Например, формула «=LEFT(B1;1)&”.”)» вернет текст «И.». Ну а логика всей формулы выглядит так: «Берем фамилию из «A1», к ней добавляем пробел (операция «&” “»). К полученному результату добавляем первую букву имени. Результат дополняем символом «.» (точка). Получаем «Иванов И.». Затем выделяем первый символ отчества и присоединяем его к тексту «Иванов И.». И наконец, завершаем текст точкой (операция «&”.“» в конце формулы).

Думаю, что этот пример несложно распространить на случай работы с базой данных. Все, что придется сделать, — это создать формулу и скопировать ее на всю высоту таблицы.

На мой взгляд, описанный прием — самый простой в реализации. Есть и другие варианты решения проблемы. Например, для любителей работать с формулами могу предложить такой вариант. Если в «A1» записан текст «Иванов Иван Иванович», то формула «=MID(A1;1;FIND(" "; A1;1))&MID(MID(A1;FIND(" ";A1;1)+1;LEN(A1));1;1)&"."&MID(MID(MID(A1;FIND(" "; A1;1)+1;LEN(A1));FIND(" ";MID(A1;FIND(" "; A1;1)+1;LEN(A1));1)+1;LEN(MID(A1;FIND(" ";A1;1)+1;LEN(A1))));1;1)&"."» вернет результат «Иванов И.И.». Книгу с этой формулой вы можете хранить в папке с образцами файлов Calc. В любой момент открываете этот файл, копируете формулу, вставляете ее в другой документ и средствами замены исправляете адресацию. Остается только скопировать формулу на всю высоту базы данных. А кто не хочет создавать формулу самостоятельно, может скачать готовый пример с форума редакции: http://bk.factor.ua/forum/viewtopic.php?p=2503#2503.

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

 

Как вычислить квартал по дате

Уважаемая редакция! Подскажите, как в программе Calc определить номер квартала для произвольной даты? Спасибо!

В. П. Ковтун, г. Харьков

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

 

Для решения этой задачи можно воспользоваться несложной формулой: «

=INT((MONTH(X)+2)/3)», в которой «ХХ» — адрес ячейки с датой для преобразования. Проверим работу формулы на примере. Открываем Calc, создаем таблицу, как показано на рис. 1. В колонку «А» заносим даты. В колонку «B» пишем формулу преобразования. Например, для даты в ячейке «A2» формула преобразования в «B2» выглядит так: «=INT((MONTH(A2)+2)/3)». В этой формуле функция «MONTH(A2)» вычисляет номер месяца для даты в ячейке «A2», а функция «INT ()» округляет результат до целого. Копируем формулу вниз и проверяем для нескольких дат. По-моему, все работает безупречно.

img 3

 

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

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

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