Cálculo a un dígito

Cálculo a un dígito

Ayúdenme en Excel a encontrar funciones en la celda de resultados siguiendo el 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

Respuesta1

Primero, si no quieres un código terriblemente complejo, debes ponerlo en una macro. Si intentara ponerlo en 1 celda, probablemente tendría más de 200 caracteres y sería imposible depurarlo.

Algo como esto:

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

Nota: Se cambia de multiplicar a sumar según criterios desconocidos, por lo que no pude codificar eso.

Respuesta2

Para sumar, según la línea 1, puede reducir a un solo dígito como este:

=MOD(A2-1,9)+1

¿Pero también quieres hacer lo mismo con la multiplicación? Como dice Cybernard, no veo cómo estás determinando cuál usar para una fórmula de multiplicación separada, asumiendo 3 iteraciones como máximo y hasta 10 dígitos en la fórmula original. Prueba 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 con CTRL+ SHIFT+ENTER

información relacionada