Расчет контрольной цифры ISBN

У Эрни есть рабочий лист, содержащий в столбце A серию номеров ISBN. Некоторые из этих чисел представлены в 10-значном формате, а некоторые – в 13-значном. Некоторые содержат тире в разных местах, а некоторые нет. Эрни знает, что последняя цифра ISBN – это контрольная цифра, основанная на определенной формуле. Ему нужен способ вычислить, правильна эта последняя цифра или нет, но он не знает, лучше ли это сделать с помощью формулы рабочего листа или макроса.

Учитывая данные, с которыми работает Эрни, и Из-за различных формул, используемых при вычислении контрольных цифр ISBN, лучше всего использовать определяемую пользователем функцию, чтобы вычислить, действительна контрольная цифра или нет. Вот хороший универсальный макрос, который может помочь:

 Function CheckISBN (rng As Range) As Boolean Dim sTemp As String Dim sDigits As String Dim J As Integer Dim K As Integer Dim  bXFlag As Boolean Dim iTtl As Integer Dim iMult As Integer Dim iChk As Integer Dim sChk As String sTemp = rng.Text 'Проверить, является ли крайний правый символ X' Это используется только для 10-значных ISBN bXFlag = False If Right (  sTemp, 1) = "X" Затем bXFlag = True 'Удалите все, кроме цифр sDigits = "" For J = 1 To Len (sTemp) If Asc (Mid (sTemp, J, 1))> 47 And _ Asc (Mid (  sTemp, J, 1))  0 Тогда iChk = 10 - iChk sChk = Trim (Str (iChk)) CheckISBN = True Если sChk  Right (sDigits, 1) Then CheckISBN = False Case Else 'ISBN isn'  t либо 10, либо 13 цифр CheckISBN = False End Функция SelectEnd 

Функция будет обрабатывать либо 10-значные, либо 13-значные номера ISBN, и не имеет значения, какой другой текст может быть у вас в ячейке перед ISBN, а также наличие дефисов, пробелов или точек между цифрами ISBN. Код удаляет все нечисловые символы, за исключением завершающего “X”, который может иметь значение в случае 10-значного ISBN.

Чтобы использовать функцию, все, что вам нужно сделать, это использовать в качестве параметра ссылку на ячейку, которая содержит значение ISBN:

 = CheckISBN (A1) 

Функция вернет либо True или False, в зависимости от того, верна ли последняя цифра ISBN в ячейке A1. (Это последняя цифра, которая составляет контрольную цифру для ISBN. ) Поскольку она возвращает True или False, функцию можно использовать в правилах условного форматирования или в более сложных формулах, разработанных вами.

Если вы хотите узнать больше о фактическом процессе расчета для проверки ISBN цифры, необходимо понимать, что номера ISBN могут состоять либо из 10 цифр (для номеров ISBN, присвоенных в 2006 г. и ранее), либо из 13 цифр (для номеров ISBN, присвоенных после 1 января 2007 г.). Кроме того, каждая схема использует свой метод расчета для определения контрольной цифры. Следующие две веб-страницы могут помочь вам понять методы расчета:

 https://isbn-information.com/the-10-digit-isbn.htmlhttps://isbn-information.com/ check-digit-for-the-13-digit-isbn.html 

Оцените статью
Frestage.ru
Добавить комментарий