Друзья, родился такой вроде несложный вопрос. Необходимо, чтобы формула определяла номер буквы в алфавите. Вот только есть несколько НО: 1. надо корректно обрабатывать "Ё" и "ё" 2. формула должна быть устойчива к регистру 3. поддержка современного русского и английского алфавитов 4. для любого иного символа или тем более строки из нескольких символов формула должна вернуть пустое значение.
В общем в соответствии с приложенным примером
Собственное решение есть и составило 246 символов. Мне очень интересно, а реально ли это сделать менее чем за 100 символов?
Друзья, родился такой вроде несложный вопрос. Необходимо, чтобы формула определяла номер буквы в алфавите. Вот только есть несколько НО: 1. надо корректно обрабатывать "Ё" и "ё" 2. формула должна быть устойчива к регистру 3. поддержка современного русского и английского алфавитов 4. для любого иного символа или тем более строки из нескольких символов формула должна вернуть пустое значение.
В общем в соответствии с приложенным примером
Собственное решение есть и составило 246 символов. Мне очень интересно, а реально ли это сделать менее чем за 100 символов?buchlotnik
vikttur, первый раз создаю тему в МШ, сорри за недоговорки - формула должна протягиваться, не обязательно по указанной таблице символов, просто вдоль некоего столбца с символами, наподобие того, что в примере. По ЕСЛИОШИБКА - тут я лоханулся - правила не внимательно читал - да без неё родимой, только у меня тогда 130 246
vikttur, первый раз создаю тему в МШ, сорри за недоговорки - формула должна протягиваться, не обязательно по указанной таблице символов, просто вдоль некоего столбца с символами, наподобие того, что в примере. По ЕСЛИОШИБКА - тут я лоханулся - правила не внимательно читал - да без неё родимой, только у меня тогда 130 246 buchlotnik
Еще замечание. Например, мягкий знак (СИМВОЛ(220)) в шрифте Wingdings 2 отображается как звездочка. Если по условиям задачи, то нужно и это отслеживать? Иначе формула покажет, что в русском алфавите 30-й знак - звездочка. Моя формула в этом случае безсильна.
Еще замечание. Например, мягкий знак (СИМВОЛ(220)) в шрифте Wingdings 2 отображается как звездочка. Если по условиям задачи, то нужно и это отслеживать? Иначе формула покажет, что в русском алфавите 30-й знак - звездочка. Моя формула в этом случае безсильна.vikttur
If Len(StrX) > 1 Then Exit Function RioAsc = Asc(UCase(StrX))
Select Case RioAsc Case Is > 197: RioAsc = RioAsc - 190 Case Is > 191: RioAsc = RioAsc - 191 Case 65 To 90: RioAsc = RioAsc - 64 Case 168: RioAsc = 7 Case Else: RioAsc = 0 End Select
End Function
[/vba]
Всем привет.
Вне конкурса, макрофункция.
[vba]
Код
Function RioAsc(StrX As String) As Byte
If Len(StrX) > 1 Then Exit Function RioAsc = Asc(UCase(StrX))
Select Case RioAsc Case Is > 197: RioAsc = RioAsc - 190 Case Is > 191: RioAsc = RioAsc - 191 Case 65 To 90: RioAsc = RioAsc - 64 Case 168: RioAsc = 7 Case Else: RioAsc = 0 End Select
Удалено администрацией. Нарушение Правил этой ветки форума В E63 вводим символ и получаем номер в алфавите. Было бы короче если б эксель позволял вводить промежутки например вот так 10>x>0
Удалено администрацией. Нарушение Правил этой ветки форума В E63 вводим символ и получаем номер в алфавите. Было бы короче если б эксель позволял вводить промежутки например вот так 10>x>0beast2040
Сообщение отредактировал beast2040 - Понедельник, 22.12.2014, 12:23
у мну есть две немассивные формулы, обе не совсем правильные одна с ЕСЛИОШИБКА (167 без "="), другая без, но выводит числа текстом (158 без "=") думаю дальше...
у мну есть две немассивные формулы, обе не совсем правильные одна с ЕСЛИОШИБКА (167 без "="), другая без, но выводит числа текстом (158 без "=") думаю дальше...krosav4ig
132 128 без "=" с форматом 0;; если бы не символы І и і , то было бы 121 сократил свои первые две формулы, с ЕСЛИОШИБКА 158 без "=", с выводом номера текстом 149 без "="
132 128 без "=" с форматом 0;; если бы не символы І и і , то было бы 121 сократил свои первые две формулы, с ЕСЛИОШИБКА 158 без "=", с выводом номера текстом 149 без "="krosav4ig
Ну дык... С таким форматом можно и 140132 (с =). Можно еще на два уменьшить, условия задачи не нарушатся - 130 (с =). Но на практике я бы не убирал :).
Ну дык... С таким форматом можно и 140132 (с =). Можно еще на два уменьшить, условия задачи не нарушатся - 130 (с =). Но на практике я бы не убирал :).vikttur
Сообщение отредактировал vikttur - Вторник, 23.12.2014, 00:45