Para cálculo de um dígito

Para cálculo de um dígito

Por favor, ajude-me no Excel a encontrar funções na célula de resultado seguindo o cálculo.

ID     Result  Calculation  
12345  6       >>1+2+3+4+5=15   >>1+5   =6  
21436  6       >>2x1x4x3x6=144  >>1x4x4 = 16 >>1x6  =6  
12345  2       >>1x2x3x4x5=120  >>1x2   =2    Omit zero digit

Responder1

Primeiro, se você não quiser um código terrivelmente complexo, precisará colocá-lo em uma macro. Se você tentasse colocá-lo em uma célula, provavelmente teria mais de 200 caracteres e seria impossível depurar.

Algo assim:

assuming var "in" contains the string

accumulator=0
for a=1 to len(in)
accumulator=accumulator*value(mid(trim(in),a,1))
next a

sum=0
while accumulator>9
for b=0 to len(accumulator)
sum=sum*value(mid(trim(accumulator),a,1))
next b
accumulator=sum
sum=0
wend

Observação: Você muda de multiplicação para adição com base em critérios desconhecidos, então não consegui codificar isso.

Responder2

Além disso, conforme a linha 1, você pode reduzir para um único dígito como este:

=MOD(A2-1,9)+1

mas você também quer fazer o mesmo para a multiplicação? Como diz cybernard, não vejo como você está determinando qual usar para uma fórmula de multiplicação separada, assumindo no máximo 3 iterações e até 10 dígitos no original, tente esta fórmula

=PRODUCT(SUBSTITUTE((0&MID(PRODUCT(SUBSTITUTE((0&MID(PRODUCT(SUBSTITUTE((0&MID(A2,ROW(INDIRECT("1:10")),1))+0,0,1)+0),ROW(INDIRECT("1:10")),1))+0,0,1)+0),ROW(INDIRECT("1:10")),1))+0,0,1)+0)

confirmado com CTRL+ SHIFT+ENTER

informação relacionada