question

Como posso calcular um digito de verificacao em MS Excel para um numero de 28 digitos baseado no algoritmo de Mod 10 com 2,1 pesos?

Como posso calcular um dígito de verificação com base na Mod 10 com peso 2,1 para um número de 28 dígitos no excel?
Preciso calcular um dígito de verificação usando o seguinte:

Verificar o cálculo do algoritmo de dígitos

Esta rotina de dígito de verificação usa Mod 10, soma dos dígitos
com 2,1, pesos.

A ilustração a seguir usa um número de 9 dígitos como um exemplo de um cálculo de mod 10

Número de conta ou de scanline: 960034116
Dígito de verificação 9
Soma de cálculo de dígitos começa com direito a número mais no
número de conta ou de scanline.

Descrição d1 d2 d3 d4 d5 d6 d7 d...

Número de conta no scanline 9 6 0 0 3 4 1 1 6 9

< ="" …=""></>
Valor multiplicador 2 1 2 1 2 1 2 1 2 0


Produto 18 6 0 0 6 4 2 1 12 0

Dez dígitos 1 0 0 0 0 0 0 0 1 0

Os dígitos 8 6 0 0 6 4 2 1 2 0

Soma de dígitos 9 6 0 0 6 4 2 1 3 0


Soma dos dígitos 31

Divde soma dos dígitos (31) pelo mod (10), deixando um resto de 1

31 10 = 3 com resto 1

Subtraia o resto (1) de valor mod (10)

10 - 1 = 9

O dígito de verificação é 10 9-(remainder(31/10)) = 9

5 minutos
- 4 dias deixou de responder.
resposta Resposta
Ah, minha achin' cérebro....LOL!

Acredito que a macro a seguir retornará o dígito de verificação apropriada, com base nas informações acima. Eu testei isso com um grande número de conjuntos de dados, e ela sempre retornar o resultado correto. Ele irá exibir uma caixa de mensagem com o dígito de verificação para cada valor na coluna A.

Uma variação no seu 'configuração' é que em vez de trabalhar direita para a esquerda o 'peso', eu simplesmente valores calculados usando o Len(cell.value) - 1. Que efetivamente multiplicado o último dígito por '0'.

Além disso, se por algum acaso, o total de dígitos divisível uniformemente por 10, o dígito de verificação seria então '10' (10-0). Então, eu mudei essa condição a um dígito de verificação de 0.

Se você está familiarizado na criação de macros, por favor, desculpe o seguinte 'exercício'.

Copie o seguinte para a área de transferência:

Sub Check_Digit()

Dim I, d, digTtl, LastRow

LastRow = Range ("A" & Rows. Count).End(xlUp).Linha

Para i = 1 To LastRow

Se as células (i, "A").Valor <> "", em seguida,

Para d = 1 To Len (células (i, "A")) - 1

Se d Mod 2 = 0 então

digTtl = digTtl + (1 Mid (células i, "A", d, 1))

ElseIf d Mod 2 = 1 então

sumDigs = 2 (Mid (células i, "A", d, 1))

Se sumDigs > 9 então

combdigs = Application.Sum (Val (esquerda (sumDigs, 1)), Val (direito (sumDigs, 1)))

Outra coisa

combdigs = sumDigs

End If

digTtl = digTtl + combdigs

sumDigs = 0

combdigs = 0

End If

Próximo d

Se 10 - digTtl Mod 10 = 10, então

MsgBox "dígito de controlo = 0", vbOKOnly, "Dígito de verificação para" & células (i, "A")

Outra coisa

MsgBox "verificar dígito =" & 10 - digTtl Mod 10, vbOKOnly, _

"Dígito de verificação para" & células (i, "A")

End If

End If

digTtl = 0

Seguinte eu

End Sub

Pressione ALT + F11

Nos menus na parte superior do VBE, selecione Inserir > módulo

Cole a macro no módulo edição área à direita.

Feche o VBE e retornar à planilha.

Pressione ALT + F8

Quando abre a janela de Macros, selecione a macro e clique em 'Opções'...

Digite uma carta para ser usado como um atalho de teclado e clique em 'OK'.

Feche a janela de Macros.

Pressione Ctrl + a letra para executar a macro.



Uma nota final: você indica que você está lidando com 28 números de dígitos. Não tenho certeza se que Excel 'nativamente' pode exibir um número de que comprimento com indo para notação científica. Você pode formatar as células como 'Text' e digite o número e a macro continuará a funcionar adequadamente.

Comentários Comentários

Guest
Gustavo na 8 Ago 2023
5
Você pode calcular um dígito de verificação com base na Mod 10 com o peso 2,1 para um número de 28 dígitos no Excel usando uma fórmula de planilha. O algoritmo de Mod 10 com peso 2,1 é um método amplamente utilizado para validar números de identificação. A fórmula geralmente envolve a multiplicação de cada dígito individual pelo peso (2,1 alternadamente) e somar os dígitos dos produtos resultantes. Usando a função MOD, é possível calcular o resto da divisão da soma dos números por 10 e finalmente subtrair o resultado do resto de 10 para obter o dígito de verificação. Espero que isso esclareça como você pode realizar este cálculo no Excel.

O seu comentário
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved