Использование пользовательского формата для добавления тире (Microsoft Excel)
У Джастина есть номера деталей, которые он обычно использует в рабочих листах, например, 660501C016971. Он хотел бы применить к ячейке настраиваемый формат, чтобы номер детали автоматически отображался с тире в нужном месте, например 6605-01-C01-6971.
К сожалению, это невозможно сделать с помощью специального формата. Зачем? Поскольку пользовательские форматы предназначены для отображения чисел, а не текста. Есть один текстовый формат, обозначаемый символом «at» (@), но это все; других нет, и никакие другие не могут быть определены.
Поскольку пользовательские форматы использовать нельзя, остается найти обходной путь. Один из способов сделать это — изучить номера деталей и посмотреть, можно ли удалить текстовую часть номера и можно ли использовать номер детали. Например, номер Джастина — 660501C016971. Если формат номера детали всегда требует буквы C в одной и той же точке номера детали (и никаких других возможных букв там нет), то вы можете просто удалить C и оставить номер 660501016971. Поскольку это число , вы можете разработать для него собственный формат, который включает тире в нужных местах и букву C в нужном месте. Пользовательский формат будет выглядеть так:
0000-00-C00-0000
Если применить формат к ячейке, содержащей число 660501016971, вы получите правильно отформатированный номер детали:
6605-01-C01-6971. Однако у этого подхода есть недостатки. Самый большой недостаток заключается в том, что если вы когда-нибудь захотите экспортировать номера деталей в другую программу, например, в виде CSV-файла, то в конечном итоге будет экспортирован исходный номер без форматирования или буквы C.
Другой обходной путь — использовать формулу для отображения номеров деталей в желаемом формате. Вы можете ввести их в ячейку без тире, а затем использовать формулу для добавления тире в соответствующих местах.
Таким образом, при создании отчетов вы просто скроете столбец, содержащий номера деталей без тире. Вот формула, которая будет работать, если номер детали без тире находится в ячейке A1:
=LEFT(A1,4) & "-" & MID(A1,5,2) & "-" & MID(A1,7,3) & "-" & RIGHT(A1,4)
Если вы немного работаете с номерами деталей, вам может понадобиться способ как легко добавлять, так и удалять тире. Лучший способ сделать это — использовать макрос. Вы можете разработать макрос, который позволит вам добавлять и удалять тире из номера детали в выбранном диапазоне ячеек. Ниже приведен пример такого макроса.
Sub DashesIn() DoDashes ("In") End Sub
Sub DashesOut() DoDashes ("Out") End Sub
Private Sub DoDashes(What As String) Dim c As Range Dim J As Integer For Each c In Selection.Cells If c.Value <> "" Then J = InStr(c.Value, "-") Select Case What Case "Out" While J > 0 c.Value = Left(c.Value, J - 1) & _ Mid(c.Value, J + 1, Len(c.Value)) J = InStr(c.Value, "-") Wend Case "In" If J = 0 Then c.Value = _ Left(c.Value, 4) & "-" & _ Mid(c.Value, 5, 2) & "-" & _ Mid(c.Value, 7, 3) & "-" & _ Right(c.Value, 4) End If End Select End If Next c End Sub
Обратите внимание, что на самом деле в этом листинге есть три макроса. Первый (DashesIn) добавляет тире к номеру детали, а второй (DashesOut)
удаляет их. Просто выберите ячейки, содержащие номера деталей, а затем запустите макрос, который выполнит нужную операцию.
И DashesIn, и DashesOut вызывают общую процедуру DoDashes, чтобы фактически выполнить работу. Макрос проверяет все выбранные ячейки, а затем выполняет любую операцию, которая должна быть выполнена с содержимым этих ячеек.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3231) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Using_a_Custom_Format_to_Add_Dashes [Использование пользовательского формата для добавления тире]
.