Разрешение префиксов и суффиксов при поиске и замене (Microsoft Excel)
У Стивена есть рабочий лист, который содержит довольно много номеров деталей, например DCC2418R. Он хотел бы изменить все префиксы (всегда «DCC») на «RR» и все суффиксы (всегда «R») на «F». Таким образом, после поиска и замены DCC2418R станет RR2418F. Стивен знает, что для преобразования может выполнить несколько операций поиска и замены. Он подозревает, что есть способ сделать это за один проход поиска и замены, но не знает, как это сделать.
Твое подозрение неверно, Стивен — невозможно сделать это за один проход. В отличие от Word (где это _ можно_ сделать за один проход), Excel не позволяет выполнять поиск по шаблонам. Это не значит, что вам не повезло. На самом деле есть несколько способов выполнить поставленную задачу.
Возможно, самый простой способ — использовать инструмент Flash Fill. Предположим, что ваши номера деталей находятся в столбце A, начиная с A1. В ячейке B1 введите номер детали в правильном формате. В ячейке B2 начните вводить следующий номер детали в правильном формате. Flash Fill должен вступить в игру. (См. Рис. 1.)
Рис. 1. Начало работы Flash Fill.
Обратите внимание на слегка закрашенные записи, предлагаемые Excel. Это результат функции Flash Fill. На этом этапе все, что вам нужно сделать, это нажать Enter, и у вас будут правильно отформатированные номера деталей. Если по какой-либо причине Flash Fill не предлагает преобразования автоматически, после ввода исправленного номера детали в ячейку B2 выберите диапазон от B1 до последней ячейки в столбце B. (например, выберите диапазон B1 : B227.) Затем нажмите Ctrl + E, и Flash Fill завершит все пустые ячейки в выбранном диапазоне.
Конечно, Flash Fill доступен не во всех версиях Excel; он был впервые представлен в Excel 2013. Если у вас нет возможности Flash Fill, вы можете использовать формулу для преобразования. Следующее, в ячейке B1, даст правильно преобразованный номер части того, что находится в ячейке A1:
=SUBSTITUTE(SUBSTITUTE(A1,"R","F",1),"DCC","RR",1)
Следующая формула также будет работать в ячейке B1:
="RR" & MID(A1,4,LEN(A1)-4) & "F"
Если вы предпочитаете макро-подход, вы можете создать тот, который проверяет ячейку и вносит изменения, если выполняются условия префикса и суффикса.
В следующем примере ReplacePartNum выполняет свою работу с именованным диапазоном, называемым MyRange. (Другими словами, вам необходимо определить именованный диапазон под названием «MyRange» перед запуском макроса. Именованный диапазон должен содержать все ячейки, которые вы хотите исследовать и преобразовать.)
Sub ReplacePartNum() Dim myRange As Range Dim c As Range Dim origText As String Dim firstBit As String Dim endBit As String Dim middleBit As String Set myRange = Range("MyRange") For Each c In myRange origText = c.Text firstBit = Left (origText, 3) endBit = Right (origText, 1) If firstBit = "DCC" And endBit = "R" Then middleBit = Mid (origText, 4, Len(origText) - 4) c.Value = "RR" & middleBit & "F" End If Next End Sub
Вы должны знать, что при желании можете использовать подстановочные знаки в своих макросах. Более подробное объяснение того, как использовать подстановочные знаки в макросах, link: / excelribbon-Wildcards_in_Replace_With_Text [можно найти в этом совете]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13479) применим к Microsoft Excel 2007, 2010, 2013 и 2016.