Джорджу часто приходится работать с данными, предоставленными другими людьми. При работе с этими данными ему может потребоваться преобразовать имя, скажем, Joe Bloggs, так, чтобы фамилия была первой, как в Bloggs, Joe. Джордж понимает, что он может использовать формулу для изменения имени, но ему нужно сделать это в той же ячейке, в которой находится имя. Ему интересно, есть ли встроенная команда, которая выполнит эту задачу.

Нет, встроенной команды для этого нет. Однако вы можете создать макрос, который будет выполнять переключение за вас. Затем этот макрос можно назначить сочетанию клавиш или разместить на панели инструментов, чтобы к нему можно было легко получить доступ. Вот простой макрос, который выполняет переключение:

Sub ReverseNames()

Dim c As Range     Dim n As Variant     Dim s As String     Dim j As Integer

For Each c In Selection         n = Split(c, " ")

s = n(UBound(n)) & ","

For j = LBound(n) To UBound(n) - 1             s = s & " " & n(j)

Next j         c.Value = Trim(s)

Next c End Sub

Чтобы использовать макрос, просто выберите диапазон ячеек, на который вы хотите повлиять, и запустите его. Макрос разделяет текст в ячейке на отдельные слова (разделенные пробелами), а затем снова строит имя. Он отлично справится с именами из двух слов (например, Joe Bloggs), но также легко справится с более длинными именами (например, Joseph Andrew Bloggs).

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (11399) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Reversing_Names_In_Place [Изменение имен на месте].