Перейти к содержимому

Как сократить имя отчество до инициалов

  • автор:

Как в EXCEL «Иванов Иван Иванович» превратить в «Иванов И.И.»

Если Фамилия, Имя и Отчество (ФИО) хранятся в одной ячейке (например, в B1 ) и отсутствуют лишние пробелы, то превратить полное ФИО в Фамилию + инициалы можно с помощью этой формулы (см. файл примера ): =ЛЕВСИМВ(B1;НАЙТИ(» «;B1;1)+1)&».»&ПСТР(B1;НАЙТИ(» «;B1;НАЙТИ(» «;B1;1)+1)+1;1)&».»

Формула определяет позицию начала Имени и Отчества по пробелам (код символа пробел =32). Очевидно, что порядок следования фамилии и имени с отчеством важен для работы формулы.

Формула НАЙТИ(» «;B1;1) в выражении Иванов Иван Иванович . Соответственно, выражение ЛЕВСИМВ(B1;НАЙТИ(» «;B1;1)+1) выводит фамилию и первый инициал (первую букву имени).

Гарантировать, что в ячейке отсутствуют лишние пробелы можно предварительно применив формулу СЖПРОБЕЛЫ() .

Чтобы превратить Иванов Иван Иванович (в ячейке B2 ) в И.И. Иванов (инициалы перед фамилией) используйте формулу = ПСТР(B2;НАЙТИ(СИМВОЛ(32);B2;1)+1;1)&».»&ПСТР(B2;ПОИСК(СИМВОЛ(32);B2;НАЙТИ(СИМВОЛ(32);B2;1)+1)+1;1)&». «&ЛЕВСИМВ(B2;НАЙТИ(СИМВОЛ(32);B2;1)-1)

Совет : Если бы фамилия, имя и отчество хранились в отдельных ячейках , то формула была бы гораздо проще =ЛЕВСИМВ(B1;1)&».» То же относится и к другим строковым значениям: Адрес (индекс, страна, город, улица); Название книги (автор, название), банковские реквизиты (номер счета, банк, БИК) и др. Формулы становятся значительно проще, если разные по смыслу данные хранятся в отдельных ячейках.

Как сократить имя отчество до инициалов

Поз=0;
Найти(ВамилияПолностью,» «);
Фамилия=Сред(ФамилияПолностью,1,Поз-1);
ФамилияПолностью=Сред(ФамилияПолностью,Поз+1);
.
дальше по аналогии получаешь имя и отчество
.

В типовых — ищи глобальную функцию.
ды не ФИО() разве
Если у Вас в глобальном модуле есть такая готовая функция одлжите пожулуйста.
В типовой бухии есть «глФамилияИмяОтчество»
к сожалению у меня типового нету, до меня кто то его спер наверно
Меня всегда удивляют люди, которые пишут нетиповые конфигурации и затыкаются на таких простых вещах.
(8) А самому написать? В (3) Осталось добавить пять строк

(7) Для Казахстана?

(8) На этот шедевр из типовой бухии:

Функция ФИО(Сотрудник) Экспорт
Перем ПолноеИмя, Фамилия, ИмяОтчество, Имя, Отчество;
Перем ПозицияПервогоПробела, ПозицияВторогоПробела;

ПозицияПервогоПробела = Найти(ПолноеИмя, » «);
Если ПозицияПервогоПробела = 0 Тогда
Возврат ПолноеИмя;
Иначе
Фамилия = Лев(ПолноеИмя, ПозицияПервогоПробела);
ИмяОтчество = Сред(ПолноеИмя, ПозицияПервогоПробела+1);
ИмяОтчество = СокрЛ(ИмяОтчество);
Имя = Лев(ИмяОтчество, 1)+».»;

ПозицияВторогоПробела = Найти(ИмяОтчество, » «);
Если ПозицияВторогоПробела = 0 Тогда
Возврат Фамилия+Имя;
Иначе
Отчество = Сред(ИмяОтчество, ПозицияВторогоПробела+1);
Отчество = СокрЛ(Отчество);
Отчество = Лев(Отчество, 1)+».»;
Возврат Фамилия+Имя+Отчество;
КонецЕсли;
КонецЕсли;
КонецФункции

Как сократить имя и отчество?

Author24 — интернет-сервис помощи студентам

В edit записывают Фамилия, Имя и Отчество. Например: Иванов Иван Иванович.
Как сократить до Иванов И.И.
И как проверить что бы в edit писали не сокращенно Иванов И.И. , а полностью Иванов Иван Иванович

Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Сократить имя и отчество до инициалов
Задан файл, каждая строка которого содержит информацию о студенте в виде «Фамилия Имя Отчество».

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

Ввести в окне имя, отчество и фамилию (именно в таком порядке) и преобразовать, чтобы получилось имя и фамилия
Нужно написать программу чтобы она умела: Ввести в окне имя, отчество и фамилию (именно в таком.

Сократить имя и отчество до инициалов
Задан файл, каждая строка которого содержит информацию о студенте в виде «Фамилия Имя Отчество».

884 / 586 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1

А если напишут «И.И. И.И.И..И.И.И-И-И-ИИИ».

Разбить на подстроки по пробелам. Смотреть наличие точек и длину подстрок?
2373 / 775 / 561
Регистрация: 15.01.2019
Сообщений: 2,394

Лучше всего сделать не одно окошко ввода, а три. Для фамилии, имени и отчества по отдельности.
А для проверки правильности ввода можно сделать примерно такую простенькую кодовую конструкцию для каждого окошка ввода.

1 2 3 4 5 6 7
var str: string; begin str:= Edit1.Text; if (length(str) < 3) or (pos('.',str) <> 0) then ShowMessage('Ошибка ввода. Вы ввели сокращенное имя в окно ввода, либо закончили его точкой.'); end;

Регистрация: 31.08.2011
Сообщений: 499

ЦитатаСообщение от ValentinNemo Посмотреть сообщение

Лучше всего сделать не одно окошко ввода, а три.

С этим бы я и сам справился, только это как то не красиво для ввода ФИО делать три окошка.

Добавлено через 1 минуту
Как то можно вводимые три слова разделить по отдельности и у последних двух оставить только первые буквы?

Добавлено через 1 минуту

ЦитатаСообщение от GoodWeather Посмотреть сообщение

Разбить на подстроки по пробелам. Смотреть наличие точек и длину подстрок?
Ну да,как то так. Только вот как?
884 / 586 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1

Лучший ответ

Сообщение было отмечено Michalich как решение

Решение

Например у TStringList есть любопытный функционал DelimitedText:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Procedure TForm2.Button1Click(Sender: TObject); Var SL: TStringList; i: Integer; Begin SL := TStringList.Create(); Try SL.Delimiter := ' '; SL.DelimitedText := Edit1.Text; For i := 0 To Pred(SL.Count) Do Begin ShowMessage('Фрагмент номер #' + IntToStr(i + 1) + ' равен: ' + SL[i]); End; Finally FreeAndNil(SL); End; End;

пофигист широкого профиля
4719 / 3154 / 858
Регистрация: 15.07.2013
Сообщений: 18,164

ЦитатаСообщение от ValentinNemo Посмотреть сообщение

Лучше всего сделать не одно окошко ввода, а три. Для фамилии, имени и отчества по отдельности.
Присоединяюсь.
9119 / 5908 / 2348
Регистрация: 21.01.2014
Сообщений: 25,280
Записей в блоге: 3

Лучший ответ

Сообщение было отмечено krapotkin как решение

Решение

ЦитатаСообщение от Michalich Посмотреть сообщение

только это как то не красиво для ввода ФИО делать три окошка
Как по мне, это единственно правильный вариант: данные, по возможности, должны быть атомарны.
5686 / 4447 / 1410
Регистрация: 14.04.2014
Сообщений: 19,910
Записей в блоге: 20
Следующая тема
Помогите, эти дебилы пишут Иван Иваныч Иванов, а надо Иванов Иван Иваныч )
3568 / 2103 / 744
Регистрация: 15.11.2015
Сообщений: 8,451

3 поля ввода, отбросить пробелы в начале и в конце и из полей Имя и Отчество брать только первую букву. Заодно и делать их заглавными.

Добавлено через 1 минуту
А вообще, инициалы это не совсем удобно потом читать. Лучше полное имя и отчество отображать.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Сократить до инициалов имя и отчество
С клавиатуры вводят строку: Фамилия Имя Отчество используя функции и процедуры для работы со.

Как сократить полное Фамилия Имя Отчество как Фамилия И.О. в t-sql
Как сократить полное "Фамилия Имя Отчество" как "Фамилия И.О." в SQL запросе Именно надо в SQL.

Ввести имя, отчество и фамилию; поменять имя и отчество местами
Ввести имя, отчество и фамилию. Поменять имя и отчество местами (через тип данных string).

Дана строка вида «Фамилия Имя Отчество». Получить строку вида Имя Отчество
Дана строка вида «Фамилия Имя Отчество». Получить строку вида Имя Отчество

Строки: вывести фамилию, имя и отчество студента, у которого самое короткое отчество
С клавиатуры вводится текст, который представляет собой список студентов группы с указанием.

С клавиатуры вводится строка «Фамилия Имя Отчество». Изменить вывод строки на «Имя Отчество Фамилия»
С клавиатуры вводится строка "Фамилия Имя Отчество". Изменить вывод строки на "Имя Отчество.

Или воспользуйтесь поиском по форуму:

Как сократить имя отчество до инициалов

Пробел нужно ставить – и между инициалами, и перед фамилией.

Проблема в том, что, насколько нам известно, нет ни одного ГОСТа или справочника, в котором содержалось бы однозначное указание – либо на то, что между инициалами должен быть пробел, либо на то, что между инициалами пробел недопустим. Можно ориентироваться на приведенные в ГОСТах и справочниках примеры, но в одних случаях пробелы там стоят, в других – не стоят.

Поэтому приходится руководствоваться логикой и здравым смыслом. Что такое пробел? Это признак нового слова. Мы же пишем Александр Сергеевич Пушкин с пробелами. Почему сокращения этих слов мы должны писать без пробелов? Другое дело, что при наборе текста на компьютерной клавиатуре лучше ставить не обычный пробел, а неразрывный (можно запомнить комбинацию клавиш: Ctrl+Shift+пробел), чтобы избежать ситуации, при которой инициалы останутся на одной строке, а фамилия будет перенесена на другую.

Где расположить инициалы – перед фамилией или после?

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *