Определение номеров деталей, состоящих только из цифр, за исключением специальных символов (Microsoft Excel)
У Криса есть большое количество ячеек, содержащих номера деталей. Эти ячейки могут содержать цифры или символы в любой комбинации. Они также могут содержать специальные символы, такие как тире, косой черты и пробелы.
Крису нужен способ определить, содержит ли ячейка только цифры, без учета специальных символов. Таким образом, ячейка, содержащая 123–45, будет отображаться как содержащая только цифры, а 123AB-45 — нет.
Самый простой способ выяснить, содержит ли данная ячейка только допустимые символы и цифры, — использовать формулу, которая удаляет недопустимые символы, не являющиеся цифрами, и затем проверяет, является ли полученное значение числовым. Все следующие формулы прекрасно справятся с задачей:
=IF(IFERROR(INT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"-", ""),"/", "")," ", "")),FALSE), TRUE, FALSE) =OR(ISNUMBER(SUBSTITUTE(A1,"-","")+0),ISNUMBER(SUBSTITUTE(A1,"/","")+0),ISNUMBER(SUBSTITUTE(A1," ","")+0)) =ISNUMBER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),"/",""),"-","")*1)
Вы также можете использовать простой макрос, чтобы выяснить, содержит ли ячейка только цифры и разрешенные символы. Хотя есть много способов приблизиться к такому макросу, вот довольно простой способ:
Function DigitsOnly(sRaw As String) As Boolean Dim X As Integer Const sAllowed As String = "0123456789 -/" Application.Volatile For X = 1 To Len(sRaw) If InStr(sAllowed, Mid(sRaw, X, 1)) = 0 Then Exit For Next X DigitsOnly = False If X > Len(sRaw) Then DigitsOnly = True End Function
Макрос проверяет все, что ему передается, сравнивая каждый символ в строке со списком разрешенных символов (в константе sAllowed).
Если обнаружен запрещенный символ, цикл преждевременно завершается и возвращается значение False. Таким образом, если вы хотите оценить ячейку в A1, вы можете использовать в своем макросе следующее:
=DigitsOnly(A1)
Поскольку они возвращают значения True или False, любой из этих подходов (формула или определяемая пользователем функция) может использоваться в сочетании с условным форматированием для внесения изменений в форматирование номеров деталей.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (12654) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.