Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / алгоритм луна в excel или access / 17 сообщений из 17, страница 1 из 1
29.05.2012, 09:54
    #37815734
satway
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
здравствуйте. Необходимо в эксель сделать проверку номеров карт по алгоритму Луна http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9B%D1%83%D0%BD%D0%B0
Возможно ли сделать это без макросов? Или аналогичная задача в access
...
Рейтинг: 0 / 0
29.05.2012, 11:41
    #37815964
Михаил Ч.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
satway,
Нужно формулой?
Код: vbnet
1.
=ОСТАТ(СУММ(ОСТАТ(ПСТР(A1;{1:3:5:7:9:11:13:15}+{0;1};1)*{2;1};{9;10}));10)=0



или макросом?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Function Luna(num$) As Boolean
    Dim i%, sum%, p%
    For i = 1 To Len(num)
        p% = Val(Mid(num, i, 1))
        If i Mod 2 Then sum = sum + p * 2 Mod 9 Else sum = sum + p
    Next i
    Luna = sum Mod 10 = 0
End Function
...
Рейтинг: 0 / 0
29.05.2012, 12:21
    #37816085
satway
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
класс, спасибо, все работает
...
Рейтинг: 0 / 0
27.09.2012, 00:55
    #37973722
tomik-04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Помогите, копирую формулу в excel, а она не работает. Что делаю не так?
...
Рейтинг: 0 / 0
27.09.2012, 00:59
    #37973724
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
В какую ячейку копируете? Какое число заносите для проверки?
...
Рейтинг: 0 / 0
27.09.2012, 16:30
    #37974850
tomik-04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Копирую в ячейку А2. Число заношу на проверку из 15 знаков в числовом формате
...
Рейтинг: 0 / 0
27.09.2012, 18:13
    #37974957
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Во-1, согласно статье число должно быть из 16 знаков.
Во-2, ячейке для числа надо установить текстовый формат, иначе оно будет округлено до 15 значащих цифр.
...
Рейтинг: 0 / 0
27.09.2012, 22:33
    #37975190
tomik-04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Спасибо за ответ, но я может чего не понимаю : если поставить цифры из примера, то ответ ИСТИНА,
а если данные любой карты или набор из 16 цифр, то алгоритм дает ЛОЖЬ. Хотя если посчитать на бумажке,
то получится цифра кратная 10.
...
Рейтинг: 0 / 0
27.09.2012, 23:17
    #37975230
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
tomik-04,

И что? Алгоритм Луна "используется для вычисления контрольной цифры номера пластиковых карт в соответствии со стандартом ISO/IEC 7812. Не является криптографическим средством, предназначение алгоритма в первую очередь — выявление ошибок, вызванных непреднамеренным искажением данных" .
Таким образом, надо быть уверенным, что при формировании номера карты предусматривалась проверка контрольных разрядов и по алгоритму Луна, а не по каким-либо другим алгоритмам.
...
Рейтинг: 0 / 0
27.09.2012, 23:46
    #37975254
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Да, в формуле и в UDF ошибка. Неверно обрабатывается цифра 9 на нечетном месте: по алгоритму она должна превратиться обратно в 9 (9*2=18, сумма цифр 9 или 18-9=9), а тут она превращается в 0 (остаток от деления 18 на 9 =0).
Исправленная UDF:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function Luna(num$) As Boolean
    Dim i%, sum%, p%
    For i = 1 To Len(num)
        p = Mid$(num, i, 1)
        If i Mod 2 Then p = p * 2: If p > 9 Then p = p - 9
        sum = sum + p
    Next i
    Luna = sum Mod 10 = 0
End Function
...
Рейтинг: 0 / 0
28.09.2012, 00:04
    #37975271
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Допилил формулу как смог - не формулист я :(
Но, работает правильно и с примером из статьи, и номером моей банковской карты :)

Код: vbnet
1.
=ОСТАТ(СУММ(ЕСЛИ(ПСТР(A1;{1:3:5:7:9:11:13:15}+{0;1};1)*{2;1}>9;ПСТР(A1;{1:3:5:7:9:11:13:15}+{0;1};1)*{2;1}-9;ПСТР(A1;{1:3:5:7:9:11:13:15}+{0;1};1)*{2;1}));10)=0
...
Рейтинг: 0 / 0
28.09.2012, 01:18
    #37975314
Михаил Ч.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
КазанскийДа, в формуле и в UDF ошибка.
Действительно, Алексей, не доглядел
А формулу можно немного короче:
Код: vbnet
1.
=ОСТАТ(СУММ(ПСТР(A1;{1:2:3:4:5:6:7:8}*2-{1;0};1)*{2;1}-(ПСТР(A1;{1:2:3:4:5:6:7:8}*2-{1;0};1)*{2;1}>9)*9);10)=0



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function Luna2(num$) As Boolean
    Dim i%, sum%, p%
    For i = 1 To Len(num)
        p = Mid$(num, i, 1) * (i Mod 2 + 1)
        sum = sum + IIf(p > 9, p - 9, p)
    Next i
    Luna2 = sum Mod 10 = 0
End Function
...
Рейтинг: 0 / 0
30.09.2012, 22:27
    #37977670
tomik-04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Спасибо. Помогли!!!
...
Рейтинг: 0 / 0
30.09.2012, 22:56
    #37977692
tomik-04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Может вопрос не по теме, но я немного туплю - как правильно вставить макрос в excel?
...
Рейтинг: 0 / 0
30.09.2012, 23:20
    #37977708
Serge 007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
tomik-04,

В Excel макрос вставить невозможно, его можно "вставить" в VBA (Alt+F11)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.11.2013, 09:39
    #38481137
Jin13
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Ребята, помогите, пожалуйста, с формулой определения контрольной цифры по алгоритму Луна, на примере 19-значной мгнитной карты.
Например, я имею ряд из 18 цифр 708337325500116001, какая будет последняя?
Очень нужна такая формула.
Спасибо.
...
Рейтинг: 0 / 0
10.12.2013, 09:48
    #38495008
Fireman13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
алгоритм луна в excel или access
Jin13,

Правсимвл(txt,1)

Вот последнее число.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / алгоритм луна в excel или access / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]