hola, de nuevo por aquí para que me resuelvan un problema que no soy capaz. Uno nunca deja de sorprenderse de las cosas que le puede pedir un jefe
necesito sumar las cifras de un número, por ejemplo, para el número 1234, quiero que excel calcule 1+2+3+4
la teoria está clara, pero no se me ocurre como hacer esa funcion ¿alguna idea?
gracias
El problema principal es saber cuántas cifras tiene tu número, para hacer una fórmula genérica que sirva para cualquier número.
Otro problema es si siempre vas a tener número enteros o si también puede haber decimales.
Te doy alguna idea para poder hacerlo:
puedes utilizar la función EXTRAE para tomar las cifras del número según su posición. esta función trabaja con textos, así que para poder operar con el resultado puede emplear la función VALOR para convertirlo de nuevo en un número.
por ejemplo, la fórmula siguiente toma la primera cifra de tu número
=VALOR(EXTRAE(tunúmero;1;1)
si tu número tiene 4 cifras e intentas extraer la cifra quinta, se provoca un error #¡VALOR!, así que tendrás que controlar el número de cifras con la función LARGO, por ejemplo la siguiente fórmula comprueba si mi número tiene cifras suficientes para obtener la cifra que estoy buscando, si es así, extrae esa cifra, y si no devuelve cero (he puesto un cero para que no afecte a la suma, si tuviera que multiplicar las cifras habría puesto un uno)
=SI(LARGO(tunúmero)>=Lacifraquebusco;VALOR(EXTRAE(tunúmero;Lacifraquebusco;1));0)
Ahora tendrás que elegir si creas una fórmula muy larga, repitiendo esto mismo para más cifras de las que vas a poder tener (excel puede tratar como números hasta 15 cifras), o bien si repites la fórmula en celdas distintas y luego las sumas.
ya nos contarás qué tal.
------
Ya sé Excel, pero necesito más ahora en pdf
------
Ya sé Excel, pero necesito más.
horrible explicando. nada que ver ...
Existe otra opción, esta vez trabajando con números, que es la que se utiliza generalmente con cualquier lenguaje de programación. Es un poco más aparatosa.
La idea es la siguiente:
En una primera columna (digamos de A2 para abajo) extiendes los números desde 0 hasta 15.
En la segunda columna (digamos de B2 hacia abajo) pones lo siguiente: en B2 pones 1. En B3 pones =10^(A3-1) y esta fórmula la extiendes hasta abajo (que será la celda B16)
En la tercera columna pones, en C2, 0. Y de C3 hacia abajo pones la siguiente fórmula (y aquí está la chicha):
=(RESIDUO(C$1;10^B3)-SUMAPRODUCTO(C$2:C2;A$2:A2))/10^(B3-1)
Y esta fórmula la extiendes hasta abajo. Te calculará los datos del número que hayas puesto en C1.
La fórmula RESIDUO te da el resto de dividir el primer parámetro entre el segundo. Si al resto le quitamos lo que ya tenemos de los dígitos anteriores, te da el dígito actual (si divides luego entre el 10 seguido de los ceros correspondientes).
Como no sé si me he explicado bien, te dejo un archivo que lo hace.
Saludos
Así me parece más fácil...
=RESIDUO(número,10)+RESIDUO(ENTERO(número/10),10)+RESIDUO(ENTERO(número/100),10)+RESIDUO(ENTERO(número/1000),10), etc.
Tal vez se tiene que hacer dos o tres veces, pero funciona.
*A1: Celda que contiene el número
La siguiente fórmula soluciona el problema para enteros positivos:
=SI(RESIDUO(A1;9)=0;9;A1-(9*(ENTERO(A1/9))))+ENTERO(LOG10(A1))*9
dudas: murolonicolasmartin@gmail.com