Как сделать ПРАВИЛЬНЫЙ пропуск некоторых слов (Microsoft Excel)
Терри постоянно использует функцию ПРАВИЛЬНЫЙ рабочий лист, чтобы изменить регистр текста в своих таблицах. Он задается вопросом, есть ли способ указать функции игнорировать определенные слова, чтобы они не начинались с заглавной буквы. Для него нет ничего необычного в том, что он должен вернуться после использования PROPER и заменить такие слова, как «the» или «an», на все строчные буквы. Если бы PROPER мог автоматически пропускать замену таких слов, это было бы большим подспорьем.
Один из способов приблизиться к этому — использовать функцию рабочего листа ЗАМЕНА в сочетании с функцией ПРОПИСАН. Например, если вы хотите найти экземпляры слова «The» с «the», вы можете использовать следующее:
=SUBSTITUTE(PROPER(A1)," The "," the ")
Обратите внимание на наличие пробела до и после того, что вы ищете и что вы заменяете. Это гарантирует, что изменяются только полные слова. Он также гарантирует, что в начале значения ячейки или в конце не будет сделано никаких изменений.
Если вы хотите найти другие слова, которые требовали замены, вы можете просто увеличить количество экземпляров ЗАМЕНА в формуле:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(PROPER(A1)," The ", " the ")," An "," an ")," And "," and ")
Очевидно, это может стать немного неудобным, если у вас есть много слов, которые вы хотите исключить из изменения. В этом случае вам придется прибегнуть к использованию макроса. Следующий макрос, написанный как определяемая пользователем функция, может использоваться для преобразования всех слов в ячейке в начальные заглавные буквы (точно так же, как PROPER), но убедитесь, что определенные определенные слова написаны в нижнем регистре.
Function Title(ByVal ref As Range) As String Dim vaArray As Variant Dim c As String Dim i As Integer Dim J As Integer Dim vaLCase As Variant Dim str As String ' Array contains terms that should be lower case vaLCase = Array("a", "an", "and", "in", "is", _ "of", "or", "the", "to", "with") c = StrConv(ref, 3) 'split the words into an array vaArray = Split(c, " ") For i = (LBound(vaArray)+1) To UBound(vaArray) For J = LBound(vaLCase) To UBound(vaLCase) ' compare each word in the cell against the ' list of words to remain lowercase. If the ' Upper versions match then replace the ' cell word with the lowercase version. If UCase(vaArray(i)) = UCase(vaLCase(J)) Then vaArray(i) = vaLCase(J) End If Next J Next i ' rebuild the sentence str = "" For i = LBound(vaArray) To UBound(vaArray) str = str & " " & vaArray(i) Next i Title = Trim(str) End Function
Чтобы использовать макрос, все, что вам нужно сделать, это использовать на листе следующее:
=Title(A1)
Вы также можете найти дополнительный подход к выполнению желаемой конверсии на этом сайте:
http://dmcritchie.mvps.org/excel/proper.htm
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (10560) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Making_PROPER_Skip_Certain_Words [Заставляем ПРОПИСАТЬ Пропуск определенных слов]
.