У Криса есть большое количество ячеек, содержащих номера деталей. Эти ячейки могут содержать цифры или символы в любой комбинации. Они также могут содержать специальные символы, такие как тире, косой черты и пробелы.

Крису нужен способ определить, содержит ли ячейка только цифры, без учета специальных символов. Таким образом, ячейка, содержащая 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.