Y en Excel, cómo se podría hacer con una fórmula?
Pues veremos que para hacerlo usaremos 2 métodos, o bien una fórmula matricial o una macro. Lo bueno de ver ésto es que nos ayudará a entender mejor las fórmulas de matriz así como las macros.
Veamos!
Imaginemos que tenemos los siguientes números aleatorios
Su suma sería así:
1. Con fórmula matricial (ver tutorial sobre matriciales Las fórmulas matriciales)
La fórmula a utilizar sería (para el número situado en la celda B3)
=SUMA(VALOR(EXTRAE(B3,FILA(INDIRECTO("1:"&LARGO(B3))),1)))
Pues veamos cómo funciona esa fórmula.
- La función LARGO (mira aquí para entender esta función mejor: La función LARGO) calcula la longitud del texto, en este caso 10.
- Por la tanto el rango ("1:"&LARGO(B3)) quedaría en (1:10). Para convertirlo en referencia se usa la función INDIRECTO (La función INDIRECTO).
- Esta función INDIRECTO esta introducida dentro de una función FILA (La función FILA) la cual nos dice la fila de una celda. Así Fila(B3) es 2, pero FILA(1:10) en función matricial (CTRL+MAYUSC+ENTER) es {1;2;3;4;5;6;7;8;9;10}. Para ver esto se puede hacer fácilmente así. Primero se hace CTRL+MAYUSC+ENTER, y se verá un número solo en la celda ya que no puede mostrar un matriz, pero de hecho hay una matriz!. Para poder ver la matriz, estando situado en la celda, se puede hacer F2+F9 y voila!
- Ahora miremos la función EXTRAE (La función EXTRAE).
- Si la escribimos con lo que ya hemos calculado sería así: EXTRAE(B3,{1;2;3;4;5;6;7;8;9;10},1) cuyo resultado en función matricial (ya sabes mediante CTRL+MAYUSC+ENTER) sería ={"7";"4";"4";"2";"8";"0";"3";"2";"9";"5"}, pero en formato texto
- Teniendo ese resultado, ahora se convierte el texto a valor para que se pueda sumar. Lo hacemos mediante la función VALOR. Con lo que =VALOR(EXTRAE(B3,FILA(INDIRECTO("1:"&LARGO(B3))),1)) es función matricial dará como resultado ={7;4;4;2;8;0;3;2;9;5} ya convertido a número.
- Con lo que ya podemos sumarlo, mediante la función SUMA, claro está!
2. Con código VBA (Macro)
Pues también se puede calcular con un código corto de VBA que calculará el total hasta que el número se convierta en un solo dígito.
Tengamos en cuenta algunas cosas para personalizar el código
- B3 es la celda donde se guarda su primer número.
- B es la dirección de la columna donde se guardan los números
Descárgate el archivo
Aquí te dejo el archivo para que lo descargues y veas cómo se han usado todo lo mencionado en la entrada de hoy.
Sumar dígitos
Te ha gustado el artículo?
No te olvides de mostrar tu gratitud hacia el autor (yo) mediante una de las 3 siguientes acciones:
1. Puedes dejar una donación pinchando en la siguiente imagen.
2. Puedes recomendar el artículo en Google haciendo clic en g+1 (justo después del artículo), también puedes compartirlo en Facebook, y/o dejar comentarios.
Quieres aprender más en Excel o tienes algún problema que necesita solución?
Puedo ofrecer servicios de consultoría así como cursos personalizados online. Mírate el siguiente enlace si estás interesado/a.
El Sabio de Excel busca colaborades del blog
Si te interesa compartir tu conocimiento sobre Excel de tal manera que puedas ayudar a otras personas, por favor mándame un email a elsabiodeexcel@gmail.com
Subscríbete y recibe todos las entradas por email
Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.
Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.
La fórmula matricial no me funciona tal como está escrita, el resultado que da no es el correcto. Os sugiero usar esta otra:
ResponderEliminar=SUMAPRODUCTO(1*EXTRAE(B3;FILA(INDIRECTO("1:"&LARGO(B3)));1))
donde B3 es la celda que contiene el número del cual queremos sumar sus dígitos.
POR FINNNNNNN ALGO QUE FUNCIONA, GRACIAS GENIO
ResponderEliminar